![]() Datenintegrationssystem mit programmatischen Quell- und Zielschnittstellen
专利摘要:
Bei einem Ausführungsbeispiel wird ein System zur Verfügung gestellt zum Ausführen von Massendatentransfers zwischen persistenten Datenspeichern. Programmatische Quellschnittstellen werden jeweils einem Quellspeicher zugeordnet, entsprechend einer Quellschnittstellenspezifikation definiert und während eines Transfers bereitgestellt, um Extraktion von Datenentitäten von ihrem Quellspeicher zum Laden in irgendeinen gewählten Zielspeicher während des Transfers zu ermöglichen. Programmatische Zielschnittstellen werden jeweils einem Zielspeicher zugeordnet, entsprechend einer gemeinsamen Zielschnittstellenspezifikation definiert und während eines Transfers bereitgestellt, um Laden von Datenentitäten, die aus irgendeinem gewählten Quellspeicher während des Transfers extrahiert wurden, in ihren Zielspeicher zu ermöglichen. Jede programmatische Schnittstelle: (1) stellt ihrem Speicher eine Abstraktion von Transferoperationen zur Verfügung, so dass eigener Code nicht in Verbindung mit ihrem Speicher entwickelt werden muss, um Transfers zwischen ihrem Speicher und jedem anderen bestimmten Speicher zu ermöglichen; und (2) isoliert spezifische Details, die ihrem Speicher zugeordnet sind, so dass eigener Code nicht in Verbindung mit den Transferoperationen entwickelt werden muss, um Transfers zwischen ihrem Speicher und jedem anderen bestimmten Speicher zu ermöglichen. 公开号:DE102004022478A1 申请号:DE200410022478 申请日:2004-05-07 公开日:2004-12-23 发明作者:Andrew J. Arlington Carroll;David M. Allston DeCaprio 申请人:I2 Technologies Inc; IPC主号:G06F3-00
专利说明:
[0001] DieseErfindung bezieht sich im Allgemeinen auf Datenintegration und insbesondereauf ein Datenintegrationssystem mit programmatischen Quell- undZielschnittstellen. [0002] Invielen Betriebsumfeldern kann es notwendig sein, Massendatentransferszwischen einer Vielzahl von persistenten Datenspeichern, die Anwendungenoder anderen Systemen intern, sowie auch extern zu einem Unternehmenzugeordnet sind, auszuführen.Bei früherenTechniken zum Handhaben solcher Massendatenbewegungen von einemQuelldatenspeicher zu einem Zieldatenspeicher in Zusammenhang mitAusführungeiner Anwendung in einem Arbeitsablauf wurde vom Anwendungsentwicklerzusätzlichzum Entwickeln des Codes fürdie Anwendung selbst typischerweise verlangt: (1) eigenes Entwickelneines fürdie Anwendung und den Quelldatenspeicher spezifischen ersten Codeteilszum Extrahieren von Daten von dem Quelldatenspeicher und Platzierender extrahierten Daten an einem Zwischenspeicherort (wie z.B. einemFlat File) in einem Zwischenformat; (2) eigenes Entwickeln einesfür dieAnwendung und das Zwischenformat spezifischen zweiten Codeteils(wie z.B. ein Perl Skript) zum Transformieren der gespeichertenDaten in ein fürden Zieldatenspeicher passendes Format; und (3) eigenes Entwickelneines fürdie Anwendung und den Zieldatenspeicher spezifischen dritten Codeteilszum Laden der transformierten Daten in den Zieldatenspeicher. Derartiger selbstentwickelter Code ist selten wieder verwendbar, ist typischerweiseschwer zu pflegen und macht Anwendungsintegration typischerweiseschwierig, wenn zusätzlicheAnwendungen und Datenspeicher der Integrationsumgebung hinzugefügt werden.ErhältlicheExtract-TransformLoad (ETL) Werkzeuge könnenExtraktion von Daten von bestimmten Quelldatenspeichern, Ansammelnoder andere einfache Transformationen von extrahierten Daten undLaden von transformierten Daten in bestimmte Zieldatenspeicher handhaben.Obwohl solche ETL Werkzeuge fürbestimmte einfache Integrationsszenarien geeignet sein können, dieVerbinden einer existierenden Anwendung oder eines anderen Systemsmit einer Datenbank beinhalten, sind solche Werkzeuge in ihren Fähigkeitenbegrenzt und nehmen einem Anwendungsentwickler nicht die oben diskutierten Lastenhinsichtlich Design und Entwicklung einer neuen Anwendung ab. Entsprechendbleibt die Unterstützungvon Massendatenintegration zwischen persistenten Datenspeicherndringend notwendig. [0003] Gemäß der vorliegendenErfindung könnenNachteile und Probleme, die mit früheren Datenintegrationstechnikenzusammenhängen,reduziert oder eliminiert werden. [0004] Beieinem Ausführungsbeispielwird ein System zur Verfügunggestellt zum Ausführenvon Massendatentransfers zwischen persistenten Datenspeichern. EinDatenintegrationsserver ist an einen oder mehrere persistente Datenspeichergekoppelt. Eine oder mehrere programmatische Quellschnittstellensind jeweils einem entsprechenden Quelldatenspeicher zugeordnet,sind einer allgemeinen programmatischen Quellschnittstellenspezifikationentsprechend definiert und werden innerhalb des Datenintegrationsserverswährendeines Massendatentransfers bereitgestellt, um es dem Datenintegrationsserverzu ermöglichen,eine oder mehrere Datenentitätenvon dem entsprechenden Quelldatenspeicher zum Laden in einen odermehrere ausgewählte Zieldatenspeicherwährenddes Massendatentransfers zu extrahieren. Eine oder mehrere programmatische Zielschnittstellensind jeweils einem entsprechenden Zieldatenspeicher zugeordnet,sind entsprechend einer allgemeinen programmatischen Zielschnittstellenspezifikationdefiniert und werden innerhalb des Datenintegrationsservers während einesMassendatentransfers bereitgestellt, um es dem Datenintegrationsserverzu ermöglichen,eine oder mehrere Datenentitäten,die von irgendeinem oder mehreren gewählten Quelldatenspeichern während desMassendatentransfers extrahiert wurden, in den entsprechenden Zieldatenspeicherzu laden. Jede programmatische Schnittstelle stellt dem entsprechendenDatenspeicher eine Abstraktion von Massendatentransferoperationeninnerhalb des Datenintegrationsservers zur Verfügung, so dass eigener-Code nichtin Verbindung mit dem entsprechenden Datenspeicher entwickelt werdenmuss, um Massendatentransfers zwischen dem entsprechenden Datenspeicherund jedem anderen bestimmten Datenspeicher zu ermöglichen.Jede programmatische Schnittstelle isoliert auch vom Datenintegrationsserverspezifische Details, die dem entsprechenden Datenspeicher zugeordnetsind, so dass eigener-Code nicht in Verbindung mit dem Datenintegrationsserverentwickelt werden muss, um Massendatentransfers zwischen dem entsprechendenDatenspeicher und jedem anderen bestimmten Datenspeicher zu ermöglichen. [0005] BestimmteAusführungsbeispielekönnenalle, einige oder keinen der Vorteile zur Verfügung stellen, die in den hierenthaltenen Figuren, Beschreibungen und Ansprüchen dargestellt sind. BestimmteAusführungsbeispielekönneneinen oder mehrere Vorteile zur Verfügung stellen, von denen eineroder mehrere für denFachmann aus den hier enthaltenen Figuren, Beschreibungen und Ansprüchen ohneweiteres erkennbar sind. [0006] Umein kompletteres Verständnisder vorliegenden Erfindung und deren Merkmale und Vorteile zur Verfügung zustellen, wird auf die folgende Beschreibung in Verbindung mit denbeiliegenden Zeichnungen Bezug genommen, in denen: [0007] 1 ein Beispiel eines Datenintegrationssystemsmit programmatischen Quell- undZielschnittstellen darstellt; und [0008] 2 ein Beispiel eines Verfahrenseiner Datenintegration unter Verwendung eines Datenintegrationssystemsmit programmatischen Quell- und Zielschnittstellen darstellt. [0009] 1 stellt ein beispielhaftesDatenintegrationssystem 2 dar, das programmatische Quell-und Zielschnittstellen einbezieht. System 2 schließt einenDatenintegrationsserver 10 ein, auf den in bestimmten Ausführungsbeispielenals „backbus" Server Bezuggenommen werden kann, der Massendatenintegration zwischen einemoder mehreren internen persistenten Datenspeichern 12a,die internen Anwendungen oder anderen Systemen 14a zugeordnetsind, und einem oder mehreren externen persistenten Datenspeichern 12b, dieexternen Anwendungen oder anderen Systemen 14b zugeordnetsind, unterstützt.Bei einem Ausführungsbeispielkann z.B. ein interner Datenspeicher 12a einem Betriebskonfigurations-Managementssystemzugeordnet sein und kann ein Masterdepot für Kernunternehmensreferenzdaten,die sich auf die Artikel, Standorte, Verkäufer, Käufer oder andere Entitäten einesUnternehmens beziehen, zur Verfügungstellen, währendein externer Datenspeicher 12b einer Planungs-, Ausführungs-, Überwachungs-oder anderen Unternehmensanwendung zugeordnet sein kann, die sichauf die Referenzdaten bei ihren Operationen verlässt. Hochleistungs-Massendatentransferserfordern typischerweise Schnittstellen und andere Integrationskomponenten, diefür dieseOperationen ausgelegt sind. [0010] Datenintegrationsserver 10 kanneinen oder mehrere JAVA-Prozesse oder andere geeignete Softwarekomponenteneinschließen.Im Allgemeinen stellt Datenintegrationsserver 10 einenMechanismus für Massendatentransferszwischen Datenspeichern 12 zur Verfügung. Bei einem Ausführungsbeispielführt Datenintegrationsserver 10 Extraktionvon Daten von einem gewünschtenQuelldatenspeicher 12 (z.B. Reihe für Reihe oder Objekt für Objekt),Zwischentransformation der extrahierten Daten gemäß der Transformationslogik,falls angemessen, (z.B. Reihe fürReihe oder Objekt fürObjekt in und aus der Transformation) und Laden der transformiertenDaten in einen gewünschtenZieldatenspeicher 12 aus (z.B. Reihe für Reihe oder Objekt für Objekt).Obwohl überwiegendLaden von Daten in einen Zieldatenspeicher 12 beschriebenist, kann Datenintegrationsserver 10 Einfügen, Updatenoder Löschenvon Daten ausführen,die entsprechend besonderer Anforderungen einem Zieldatenspeicher 12 zugeordnetsind, und der Begriff „Laden" kann, wo es je nachKontext angemessen ist, alle solche Operationen einschließen. Jededieser Operationen kann z.B. in Verbindung mit Ausführung einerAnwendung oder anderem System 14 innerhalb eines Arbeitsablaufsauf Unternehmensebene auftreten. [0011] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 jeden Quelldatenspeicher 12 undjeden Zieldatenspeicher 12 aufnehmen, die jeweils programmatischeQuell- und Zielschnittstellen 16a und 16b verwenden.Programmatische Schnittstellen 16 können als JAVA oder jede anderegeeignete Schnittstellen ausgelegt sein. Im Allgemeinen stellenQuellschnittstellen 16a Zugang zur Verfügung, um Daten von einem zugeordnetenQuelldatenspeicher 12 abzufragen, und Zielschnittstellen 16b stellenZugang zur Verfügung,um Daten in einem zugeordneten Zieldatenspeicher 12 einzufügen, upzudatenoder zu löschen.Wo programmatische Schnittstellen 16 JAVA-Schnittstellensind, könnenprogrammatische Schnittstellen 16 ein JAVA ApplicationProgram Interface (API) implementieren, um derartigen Zugang zurVerfügungzu stellen. [0012] EineQuellschnittstelle 16a kann für jede geeignete Zeit bestehenbleiben, z.B. währendeines Abschnitts eines einzelnen Datentransfers, während dergesamten Dauer nur eines einzelnen Transfers oder während verschiedenerDatentransfers. Bei einem Ausführungsbeispieljedoch bleibt eine Quellschnittstelle 16a nur für die Dauereines einzelnen Datentransfers bestehen, nach dem Quellschnittstelle 16a freigegeben oderanderweitig verworfen wird. Ähnlichkann eine Zielschnittstelle 16b für jede geeignete Zeit bestehenbleiben, z.B. währendeines Abschnitts eines einzelnen Datentransfers, während dergesamten Dauer nur eines einzelnen Transfers oder während verschiedenerDatentransfers. Bei einem Ausführungsbeispieljedoch bleibt eine Zielschnittstelle 16b nur für eineneinzelnen Schritt eines Datentransfers bestehen, nach dem Zielschnittstelle 16b freigegebenoder anderweitig verworfen wird. [0013] Obwohljeder interne Datenspeicher 12a abhängig vom Massendatentransfer-Szenario ein Quelldatenspeicheroder ein Zieldatenspeicher sein kann und ähnlich jeder externe Datenspeicher 12b abhängig vom Massendatentransfer-Szenarioein Quelldatenspeicher oder Zieldatenspeicher sein kann, können zuZwecken der Einfachheit interne Datenspeicher 12a als Quelldatenspeicherund externe Datenspeicher 12b als Zieldatenspeicher inbestimmten hierin beschriebenen Beispielen bezeichnet sein. In dembesonderen in 1 dargestelltenBeispiel werden somit Quellschnittstellen 16a so dargestellt,als wärensie internen Datenspeichern 12a zugeordnet (d.h. die Quelldatenspeicherin dem Beispiel), währendZielschnittstellen 16b so dargestellt werden, als wären sieexternen Datenspeichern 12b zugeordnet (d.h. die Zieldatenspeicherin dem Beispiel). Es sollte jedoch klar verstanden werden, dassein Quelldatenspeicher 12 entweder intern oder extern sein kann,ein Zieldatenspeicher 12 entweder intern oder extern seinkann und Datenintegrationsserver 10 programmatische Schnittstellen 16 verwendenkann, um Intern-Intern-, Intern-Extern-, Extern-Intern- oder Extern-Extern-Massendatentransfersentsprechend besonderen Anforderungen auszuführen. [0014] Beieinem Ausführungsbeispielstellen programmatische Schnittstellen 16 Abstraktionender tatsächlicheninnerhalb des Datenintegrationsservers 10 für Massendatentransferzwischen Datenspeichern 12 durchgeführten Operationen zur Verfügung, undschließenanwendungsspezifische oder andere systemspezifische Details ein.Als Resultat muss z.B. ein Entwickler einer Anwendung 14 miteinem zugeordneten Datenspeicher 12 nichts über bestimmteMassendatentransferoperationen innerhalb des Datenintegrationsservers 10 oderden Entwickler-Code wissen, um solche Massendatentransferoperationenhandhaben zu können. Auchmuss der Entwickler von Anwendung 14 nichts über dieDetails oder sogar die Identitätenanderer Anwendungen 14 oder der zugeordneten Datenspeicher 12 wissen,die letztendlich als Zieldatenspeicher 12 (wo eine Quellschnittstelle 16a implementiertist) oder als Quelldatenspeicher 12 (wo eine Zielschnittstelle 16b implementiertist) dienen. Stattdessen kann der Entwickler von Anwendung 14 eineQuellschnittstelle 16a zum Extrahieren von Daten von zugeordnetemDatenspeicher 12, eine Zielschnittstelle 16b zumLaden von Daten in zugeordneten Datenspeicher 12 oder beides,je nachdem wie Anwendung 14 genutzt wird, spezifizieren,definieren oder anderweitig implementieren. Implementieren einerprogrammatischen Schnittstelle 16 kann Entwicklungscodegemäß einergeeigneten Schnittstellenspezifikation beinhalten, um sicherzustellen,dass programmatische Schnittstelle 16 mit anderen, Datenintegrationsserver 10 zugeordnetenKomponenten voll kompatibel ist. Nach Implementierung der programmatischenSchnittstelle 16 könnenandere Anwendungen 14 durch Datenintegrationsserver 10 programmatischeSchnittstelle 16 verwenden, um Daten von (wo eine Quellschnittstelle 16a implementiertist) oder Daten in (wo eine Zielschnittstelle 16b implementiertist) Datenspeicher 12, welcher der Anwendung 14 zugeordnetist, die die programmatische Schnittstelle 16 bereitstellt,zu extrahieren oder zu laden. Im Gegensatz zu früheren Techniken bleibt demAnwendungsentwickler somit die Entwicklung von separatem eigenemCode zum Handhaben von Massendatentransfers für jede andere Anwendung 14,zu der Daten exportiert oder von der Daten importiert werden können, erspart.Bei Infrastrukturen, bei denen sogar mehrere Anwendungen 14 Datenaustauschen müssen,kann derartige Generierung des eigenen Codes eine bedeutende Lastfür Entwicklungsressourcendarstellen. [0015] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 eine programmatische Schnittstelle 16 bereitstellen,die eine Standard File Transfer Protocol (FTP) Schnittstelle verwendet.Typischerweise hat ein FTP Server Zugang zu auf einer Platte persistentenDateien, und Anwendungen laden diese Dateien unter Verwendung desFTP Servers in Übereinstimmungmit FTP herunter oder hoch. Wo Datenintegrationsserver 10 FTPin Verbindung mit einer programmatischen Schnittstelle 16 implementiert,sind jedoch keine Dateien tatsächlichauf einer Platte persistent. Stattdessen kann ein FTP Client, wennder FTP Client Daten von einem Quelldatenspeicher 12 extrahierenmuss, eine FTP Verbindung öffnen,die den Datenintegrationsserver 10 informiert, dass ereinen Datenstrom von Quelldatenspeicher 12 herunterlädt. AlsReaktion kann Datenintegrationsserver 10 einfach die geeigneteQuellschnittstelle 16a für Quelldatenspeicher 12 instanziierenund, wenn Quellschnittstelle 16a den von Quelldatenspeicher 12 extrahiertenDatenstrom produziert, den abgehenden Datenstrom zu dem FTP Clientin Übereinstimmungmit FTP senden (z.B. als .txt oder .xml Datei je nach Anforderung). Ähnlich kannein FTP Client, wenn der FTP Client Daten in einen Zieldatenspeicher 12 ladenmuss, eine FTP Verbindung öffnen,die den Datenintegrationsserver 10 informiert, dass ereinen Datenstrom in Zieldatenspeicher 12 hochlädt. AlsReaktion kann Datenintegrationsserver 10 einfach die entsprechendeZielschnittstelle 16b fürZieldatenspeicher 12 instanziieren und, wenn der Datenstromvom FTP Client ankommt (z. B. als .txt oder .xml Datei je nach Anforderung),den ankommenden Datenstrom an Zielschnittstelle 16b zumLaden in Zieldatenspeicher 12 senden. Da keine Datei tatsächlich gelesenoder geschrieben wird, gibt es geringe oder keine Wartezeit. [0016] AlsErgebnis kann bei einem AusführungsbeispielDatenintegrationsserver 10 jedem geeigneten FTP Clienterlauben, Massendatentransfers auszuführen hinsichtlich Datenspeicher 12 unterVerwendung von programmatischen Schnittstellen 16, egalob diese Datenspeicher 12 oder deren zugeordnete Anwendungen 14 selbstFTP Transfers unterstützenoder nicht. Aus der Perspektive des FTP Clients werden Daten wiein einem Standard FTP Transfer heruntergeladen oder hochgeladen.Aus der Perspektive des Datenspeichers 12 und dessen zugeordneterAnwendung 14 werden Daten exportiert oder importiert unterVerwendung der bereitgestellten programmatischen Schnittstelle 16,ohne zu berücksichtigen,ob das Ziel (zum Exportieren von Daten unter Verwendung einer Quellschnittstelle 16a)oder die Quelle (zum Importieren von Daten unter Verwendung einerZielschnittstelle 16b) einen FTP Transfer ausführt. Wieoben beschrieben, könnenprogrammatische Schnittstellen 16 Datenspeicher 12 undzugeordnete Anwendungen 14 von solchen Details isolieren,um transparente Kompatibilitätzwischen Quellen und Zielen zur Verfügung zu stellen. Darüber hinausbetrachtet die vorliegende Erfindung, obwohl FTP als Beispiel für eine Situationbeschrieben wird, in der Daten dem Client als eine Datei bereitgelegtwerden, ähnlichenAblauf und ähnlicheVorteile in Verbindung mit Hypertext Transport Protocol (HTTP) (woDaten dem Client als Webpage bereitgestellt werden), Open DatabaseConnectivity (ODBC) oder JAVA Database Connectivity (JDBC) (wo derClient so tut, als wäreer eine Datenbank), oder jedem anderen geeigneten Standard-Protokoll. So kannim weiten Sinne Datenintegrationsserver 10 mit programmatischenSchnittstellen 16 die Fähigkeitzur Verfügungstellen, Unterstützungfür Standard-Protokolle zu existierendenAnwendungen 14 und zugeordneten Datenspeichern 12 transparenthinzuzufügen,die solche Protokolle nicht anderweitig unterstützen. [0017] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 zusätzlich zu programmatischen Schnittstellen 16 relationaleSchnittstellen 18 als eine Alternative zum Exportierenund Importieren von Daten hinsichtlich einfacher relationaler Datenspeicher 12 unterstützen. Wenneine Anwendung 14 z.B. einem relationalen Datenspeicher 12 zugeordnetist, kann es fürden Anwendungsentwickler wünschenswertsein, eine relationale Schnittstelle 18 zu implementieren,um Datenintegrationsserver 10 zu erlauben, direkt von relationalemDatenspeicher 12 zu lesen und direkt auf relationalen Datenspeicher 12 zuschreiben, ohne die zusätzliche Komplexität, die jeweilseiner Quellschnittstelle 16a oder einer Zielschnittstelle 16b zugeordnetist. Entsprechend besonderer Anforderungen kann der Anwendungsentwicklerentscheiden, ob eine programmatische Schnittstelle 16 odereine relationale Schnittstelle 18 für Datenexport oder -importin Bezug auf relationalen Datenspeicher 12 implementiertwird. [0018] DieEntscheidung, ob eine programmatische Schnittstelle 16 odereine relationale Schnittstelle 18 zur Verfügung gestelltwird, hängtvon bestimmten Anforderungen ab. Wenn z.B. relationaler Datenspeicher 12 FlatFiles zum Importieren von Daten verwendet, dann kann die Entscheidungzwischen einer Zielschnittstelle 16b und einer relationalenSchnittstelle 18 von der Verarbeitungsmenge abhängen, diean den Flat Files durchgeführtwird, bevor diese in relationalem Datenspeicher 12 gespeichertwerden. Wenn relativ wenig Verarbeitung nötig ist und die Leistung kritischist, dann kann der Anwendungsentwickler wählen, eine relationale Schnittstelle 18 zuimplementieren, um direkt relationalen Datenspeicher 12 bereitzustellen.Wenn jedoch relativ signifikante Validierung oder andere Verarbeitungbenötigtwird und die Leistung nicht so kritisch ist, dann kann der Anwendungsentwicklerwählen,relationalen Datenspeicher 12 unter Verwendung einer Zielschnittstelle 16b bereitzustellen. [0019] WennAnwendung oder anderes System 14 über eine existierende relationaleSchnittstelle zu dessen relationalen Datenspeicher 12 verfügt, dannkann es wünschenswertsein, diese existierende relationale Schnittstelle innerhalb Datenintegrationsserver 10 alseine relationale Schnittstelle 18 bereitzustellen. Jedoch mussdas nicht immer die beste Option sein. Wenn z.B. die existierenderelationale Schnittstelle einfach eine Menge von Zwischenspeicher-Tabellenist, die besetzt und gelesen werden, validiert und in richtige Tabellen gesetztwerden, dann kann es wünschenswertsein, stattdessen eine programmatische Schnittstelle 16 zuimplementieren, um den Zwischenspeicher-Schritt zu eliminieren.Die Verwendung eines Zwischenspeicher-Bereiches kann die Fähigkeiteliminieren, die Daten in Datenintegrationsserver 10 zufördern,was jegliche Leistungsgewinne durch die Verwendung einer relationaleSchnittstelle 18 aufwiegen kann. [0020] WennVerarbeitung zwischen dem Zwischenspeicher-Bereich und internenTabellen von relationalem Datenspeicher 12 auf einer Reihe-für-Reihe-Basisausgeführtwerden kann, dann kann es am Besten sein, die existierende relationaleSchnittstelle in eine programmatische Schnittstelle 16 zukonvertieren. Wenn jedoch Verarbeitung zwischen dem Zwischenspeicher-Bereichund internen Tabellen von relationalem Datenspeicher 12 komplexeAnfragen erfordert, die auf alle Daten wirken, dann kann es am Bestensein, die Zwischenspeicher-Tabellen beizubehalten und einfach dieexistierende relationale Schnittstelle als eine relationale Schnittstelle 18 bereitzustellen. [0021] Beieinem Ausführungsbeispielkönnenjede programmatische Schnittstelle 16 und relationale Schnittstelle 18 eineSchnittstellen-Schema-Datei und eine Schnittstellen-Zuweisungs-Dateieinschließen,wobei beide eine XML- oder andere Metadaten-Datei sein können. DieSchnittstellen-Schemadatei kann eine datenbankneutrale Beschreibungdes physikalischen Schemas des Datenspeichers 12 zur Verfügung stellen,der der Schnittstelle 16, 18 zugeordnet ist. DieSchnittstellen-Zuweisungs-Datei kann logisch-physikalische Zuweisungenfür alleDatenentitäten,die als Teil von Schnittstelle 16, 18 verwendetwerden, zur Verfügungstellen, kann alle Datenentitätenidentifizieren, die nur fürprogrammatische Schnittstellen 16 und nicht für relationale Schnittstellen 18 verwendetwerden sollen, und kann anzeigen, ob Datenentitäten für Export (d.h. als Quellen) oderImport (d.h. als Ziele) oder fürbeides verwendet werden sollen. Obwohl in erster Linie separateSchnittstellen-Schema- und Schnittstellen-Zuweisungs-Dateien beschriebensind, könnensolche Informationen unter Verwendung einer einzelnen Datei oderjeder anderen geeigneten Darstellung gehalten werden. [0022] EineZuweisungs-Datei, die einer Schnittstelle 16, 18 zugeordnetist, beschreibt vorzugsweise Datenentitäten, die unter Verwendung vonSchnittstelle 16, 18 während eines Massendatentransfersauf eine An transferiert werden, die es diesen Datenentitäten erlaubt,zwischen Datenspeichern 12 transferiert zu werden und über dieunterschiedliche Datenbankschemata haben. Die Datenentitäten, dietransferiert werden, können z.B.Menschen beschreiben, unter Verwendung eines Person genannten Typsmit drei Feldern Vorname, Nachname, und Geburtsdatum. Wenn die Datenentitäten zu odervon einem Datenspeicher 12 transferiert werden, der einePerson genannte Tabelle mit drei Feldern Vorname, Nachname und Geburtsdatum,enthält,dann ist zusätzlicheKonfiguration hinsichtlich Schnittstelle 16, 18,die diesem Datenspeicher 12 zugeordnet ist, nicht nötig. Wennjedoch die Datenentitätenzu oder von einem Datenspeicher 12 transferiert werden,der eine Menschen genannte Tabelle mit drei Feldern Vname, Nnameund Gdatum enthält,dann kann die Zuweisungs-Datei fürdie Schnittstelle 16, 18, die diesem Datenspeicher 12 zugeordnetist, eine Zuweisung zwischen der logischen Darstellung Person(Vorname,Nachname, Geburtsdatum) und dem physikalischen Datenschema Menschen(Vname,Nname, Gdatum) zur Verfügungstellen. Obwohl in erster Linie eine Zuweisungs-Datei beschriebenist, betrachtet die vorliegende Erfindung jeden geeigneten Mechanismusfür logisch-physikalische Zuweisung,um Massendatentransfers zwischen Datenspeichern 12, dieunterschiedliche Datenbankschemata haben, zu unterstützen. [0023] Datenintegrationssystem 10 kannSitzungsschnittstellen 20 bereitstellen, um einen breiterenLevel an Kontrolle und Persistenz für bestimmte Informationen zurVerfügungzu stellen, wie Massendatentransfers zugeordnete Verbindungsinformationen.Bei einem Ausführungsbeispielkann fürjeden Massendatentransfer, der eine oder mehrere programmatischeSchnittstellen 16 umfasst, eine Sitzungsschnittstelle 20 amAnfang des Transfers fürdie eine oder mehreren mit dem Datentransfer involvierten programmatischenSchnittstellen 16 instanziiert werden, für die Dauerdes Datentransfers bestehen bleiben und bei Beendigung des Datentransfersfreigegeben werden. Sitzungsschnittstellen 20 können jedochoptional konfiguriert werden, um über die Dauer eines einzelnenDatentransfers hinaus bestehen zu bleiben, um sich über mehrereDatentransfers zu erstrecken. Eine Sitzungsschnittstelle 20 kannz.B. beim Starten von Datenintegrationsserver 10 instanziiert werdenund darf nicht freigegeben werden, bevor Datenintegrationsserver 10 heruntergefahrenwird. [0024] Sitzungsschnittstellen 20 können einenallgemeinen Mechanismus zur Implementierung von Ressourcen zur Verfügung stellen,die die zu transferierenden Datenentitäten darstellen und Konfigurationsinformationenzur Verfügungstellen, die füreinen einzelnen Massendatentransfer für eine zugeordnete programmatischeSchnittstelle 16, multiple programmatische Schnittstellen 16 odermultiple Datentransfers benötigtwerden. Sitzungsschnittstellen 20 können geeignete Details, wieZustandsinformationen fürdie Ressourcen, Verbindungsinformationen für die Quell- und Zieldatenspeicher 12 undandere Details, die Export und Import von Ressourcen innerhalb einesDatentransfers zugeordnet sind, kapseln und vor den zugeordnetenprogrammatischen Schnittstellen 16 verbergen. Sitzungsschnittstellen 20 können somiteinen Mechanismus zur Verfügungstellen, der elegantere und intelligentere Implementierungen vonprogrammatischen Schnittstellen 16 fördert. Eine Sitzungsschnittstelle 20 istvorzugsweise grundlegend genug, um einen weiten Grad an Flexibilität und Anpassungzuzulassen. Bei einem Ausführungsbeispielkönneneine oder mehrere Quellschnittstellen 16a, eine oder mehrereZielschnittstellen 16b oder sowohl eine oder mehrere Quellschnittstellen 16a undeine oder mehrere Zielschnittstellen 16b innerhalb einerSitzungsschnittstelle 20 definiert werden, so dass Sitzungsschnittstelle 20 beimStart jedes Datentransfers instanziiert wird, der eine oder mehrereder definierten programmatischen Schnittstellen 16 einschließt. Jedeprogrammatische Schnittstelle 16, die innerhalb von Sitzungsschnittstelle 20 definiertist, hat durch einen geeigneten JAVA Funktionsaufruf oder anderweitigZugang zu Sitzungsschnittstelle 20. [0025] Datenintegrationsserver 10 kannein ETL Werkzeug 22 von Dritten unterstützen, das vorzugsweise so gekapseltist, dass die internen Schnittstellen und andere interne Detailsdes ETL Werkzeugs 22 nicht dem Datenintegrationsserver 10 während derAusführungdargestellt werden. Obwohl das Design von Datenintegrationsserver 10 jedesgeeignete ETL Werkzeug 22 unterstützen kann, kann bei einem Ausführungsbeispiel INFORMATICAPOWERCENTER als ETL Werkzeug 22 ausgewählt werden. INFORMATICA POWERCENTERClient-Werkzeuge könnenverwendet werden, um bestimmte Massendatentransfers zu entwerfen,inklusive bestimmter Zwischentransformationen, die in Verbindungmit den Datentransfers benötigtwerden können. EinINFORMATICA POWERCENTER Server kann diese Datentransfers je nachAnweisung des Datenintegrationsservers 10 ausführen, wievollständigerunten beschrieben wird. [0026] ETLWerkzeug 22 kann die Fähigkeitzur Verfügungstellen, direkt zu bestimmten Anwendungen oder anderen Systemen 14 zuverbinden, die direktes Lesen von oder Schreiben in zugeordneteDatenspeicher 12 zulassen. Als eine Alternative kann ETLWerkzeug 22 ETL Adapter 24 einschließen, dieverwendet werden können,um solche direkte Verbindung zu bestimmten Datenspeichern 12 zuermöglichen.INFORMATICA POWERCENTER kann z.B. POWERCONNECT Adapter 24 zurVerfügungstellen, um direkte Verbindung zu SAP-spezifischen, ORACLE-spezifischenoder anderen kommerziellen Datenspeichern 12 „von derStange" zu ermöglichen. [0027] Alsweitere, flexiblere Alternative gemäß der vorliegenden Erfindungkönnenbestimmte Anwendungen oder andere Systeme 14 programmatischeSchnittstellen 16 bereitstellen, die innerhalb von Datenintegrationsserver 10 eingesetztsind. In diesem Fall kann ETL Werkzeug 22 unter Verwendungder bereitgestellten Quell- oder Zielschnittstellen 16 Datenjeweils extrahieren oder laden, anstatt direkt mit oder ohne Adapter 24 zuverbinden. INFORMATICA POWERCENTER kann z.B. gemäß einem Ausführungsbeispielder vorliegenden Erfindung als ein ETL Werkzeug 22 verwendetwerden, um durch zugeordnete programmatische Schnittstellen 16 zuDatenspeichern 12 zu verbinden. ETL Werkzeug 22 kannals ein FTP Client agieren, um unter Verwendung von programmatischenSchnittstellen 16 fürDatenspeicher 12, wie oben vollständiger beschrieben ist, Datenvon oder Daten in Datenspeicher 12 zu extrahieren oderzu laden. Wo z.B. INFORMATICA POWERCENTER als ETL Werkzeug 22 verwendetwird, kann ein INFORMATICA POWERCHANNEL API es ETL Werkzeug 22 erlauben,als ein FTP Client zu agieren, um Daten unter Verwendung von programmatischen Schnittstellen 16 zuextrahieren oder zu laden. Verwendung von programmatischen Schnittstellen 16 kannes Datenintegrationsserver 10 erlauben, transparente Kompatibilität zwischenjedem geeigneten ETL Werkzeug 22 und jedem geeigneten Datenspeicher 12 zuunterstützen.Wo z.B. INFORMATICA POWERCENTER als ETL Werkzeug 22 verwendetwird, kann jede Anwendung 14, die über eine geeignete programmatische Schnittstelle 16,innerhalb von Datenintegrationsserver 10 verfügt als Ergebniseinen INFORMATICA POWERCHANNEL API unterstützen. [0028] Datenintegrationsserver 10 kanneinen Controller 26 unterstützen, um individuelle Massendatentransfersunter Verwendung von programmatischen Schnittstellen 16 auszuführen, woentweder ETL Werkzeug 22 nicht vorhanden ist oder seineKapazitätennicht benötigtwerden. Controller 26 kann z.B. verwendet werden, um Datentransferszwischen Quellen und Zielen auszuführen, die sehr ähnlich oderidentisch hinsichtlich ihrer Ressourcenschemata sind, und keineZwischentransformationen, Validierung oder andere Datenverarbeitung isterforderlich. Füreinen Massendatentransfer, der eine oder mehrere Quellschnittstellen 16a undeine oder mehrere Zielschnittstellen 16b involviert, ziehtController 26 auf Anweisung von Datenintegrationsserver 10 die exportiertenDaten von der einen oder den mehreren Quellschnittstellen 16a undschiebt die Daten zu der einen oder den mehreren Zielschnittstellen 16b.Controller 26 kann Daten von einem Quelldatenspeicher 12a ziehen,der in einen Datentransfer involviert ist, unter Verwendung derzugeordneten Quellschnittstellen 16 auf einer Datenentität für Datenentität Basis(z.B. Reihe fürReihe oder Objekt fürObjekt) und die Daten fürden Datentransfer zu dem geeigneten Zieldatenspeicher 12a schiebenunter Verwendung der zugeordneten Zielschnittstellen 16b aufdieselbe Weise. In diesem besonderen Fall wird jede Datenentität von einemQuelldatenspeicher 12a extrahiert und in einen Zieldatenspeicher 12b geladen,bevor die nächsteDatenentitätextrahiert und geladen wird. JAVA oder anderer geeigneter Code können dieAusführungdes Massendatentransfers handhaben. Bei einem Ausführungsbeispielkann Controller 26 beim Ausführen des Massendatentransfersje nach Anweisung von Datenintegrationsserver 10 eine Sitzungsschnittstelle 20 verwenden.Wie unten vollständigerbeschrieben ist, kann bei einem Ausführungsbeispiel Controller 26 anstelleeiner oder zusätzlichzu einer Sitzungsschnittstelle 20 bei der Ausführung desMassendatentransfer je nach Anweisung von Datenintegrationsserver 10 eineTransformationsschnittstelle 28 verwenden. [0029] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 zusätzlich zu Quellschnittstellen 16a, Zielschnittstellen 16b undjeglichen Sitzungsschnittstellen 20 eine oder mehrere Transformationsschnittstellen 28 bereitstellen.Obwohl es nicht erforderlich ist, kann eine Transformationsschnittstelle 28 eseinem Anwendungsentwickler erlauben, benutzerdefinierte oder andereTransformationslogik zu entwerfen, entwickeln und packen, die während einesMassendatentransfers auf Ressourcen, die von Quelldatenspeicher 12a unterVerwendung der zugeordneten Quellschnittstelle 16a extrahiertsind, angewendet wird, bevor diese Ressourcen in Zieldatenspeicher 12b unterVerwendung der zugeordneten Zielschnittstelle 16b geladenwerden. Wenn Controller 26 Daten auf Basis von Datenentität für Datenentität, wie obenbeschrieben, extrahiert und lädtund eine Transformation auf dieser Basis nicht ausgeführt werdenkann (z.B. nicht Reihe fürReihe oder Objekt für Objektausgeführtwerden kann), kann Fluss von Datenentität für Datenentität auf beidenSeite der Transformation erreicht werden (z.B. Reihe für Reiheoder Objekt fürObjekt in die Transformation hinein, dann Reihe für Reiheoder Objekt fürObjekt aus der Transformation heraus). Eine Transformationsschnittstelle 28 kann helfen,Transformationslogik von programmatischen Schnittstellen 16 zuentkoppeln, da sie die Transformationslogik kapselt und vor programmatischenSchnittstellen 16 versteckt, was helfen kann, elegantereund intelligentere Implementierungen von programmatischen Schnittstellen 16 zuerleichtern. [0030] EineTransformationsschnittstelle 28 kann es einem Anwendungsentwicklererlauben, benutzerdefinierte oder andere Transformationslogik zuentwerfen, entwickeln und packen, die einem Datentransfer zwischeneiner oder mehreren Quellschnittstellen 16a und einer odermehreren Zielschnittstellen 16b ohne Verwendung von ETLWerkzeug 22 zugeordnet ist. Bestimmte Transformationenkönnenz.B. unter Verwendung von ETL Werkzeug 22 schwieriger oderunmöglichzu entwerfen sein, oder könnenunter Leistungsproblemen leiden, wenn sie unter Verwendung von ETLWerkzeug 22 entwickelt sind. Eine Transformationsschnittstelle 28 kannzur Entwicklung von gepackten Datenintegrationslösungen zwischen gemeinsam verwendetenQuellschnittstellen 16a und Zielschnittstellen 16b nützlich sein,die fürdiese programmatischen Schnittstellen 16 optimiert ist,besonders wo diese programmatischen Schnittstellen 16 Datenspeichern 12 zugeordnetsind, die schematisch abweichende Ressourcen enthalten. Einige Datenintegrationslösungen können z.B.zwischen einer Planungsmaschine und einem Betriebsdatenspeicher 12 entworfen,entwickelt und verpackt werden zur Freigabe für verschiedene Kunden, können aberbestimmte Transformationslogik benötigen. Eine Transformationsschnittstelle 28 kannes dieser Transformationslogik erlauben, implementiert zu werden,ohne Einfluss auf programmatische Schnittstellen 16 zuhaben und ohne sich den Overhead, der mit einem Unternehmenslevel- oderanderem ETL Werkzeug 22 verbunden ist, zuzuziehen. [0031] Beieinem Ausführungsbeispielkönneneine oder mehrere Quellschnittstellen 16a, eine oder mehrere Zielschnittstellen 16b oderbeide innerhalb einer Transformationsschnittstelle 28 definiertwerden, so dass die Transformationsschnittstelle 28 am Anfang vonjedem Datentransfer der eine oder mehrere der programmatischen Schnittstellen 16 involviert,und so dass die zugeordnete Transformationslogik auf die Ressourcenangewendet wird, die in dem Datentransfer bewegt werden. Eine Transformationsschnittstelle 28 für einenDatentransfer kann zur im Wesentlichen selben Zeit wie jede Sitzungsschnittstellefür denDatentransfer instanziiert werden. Die vorliegende Erfindung betrachtetgeeignete Regeln, um festzulegen, ob Transformationslogik, die einerTransformationsschnittstelle 28 zugeordnet ist, auf dieRessourcen in einem Datentransfer angewendet wird, anstelle von überhauptkeiner Transformationslogik oder anstelle von durch ETL Werkzeug 22 verfügbare Transformationslogik. [0032] Beieinem AusführungsbeispielerfülltDatenintegrationsserver 10 ohne Einschränkung fünf Hauptziele: (1) Beherbergenvon Implementierungen von programmatischen Schnittstellen 16,die Anwendungen oder anderen Systemen 14 zugeordnet sind;(2) Definieren von Massendatenbewegungen als atomische Datentransfers;(3) Bereitstellen von Datentransferoperationen als Dienste für den Restder Systeminfrastruktur; (4) zur Verfügung stellen von Konnektivität für jedesETL Werkzeug 22; und (5) Ausführung von Datentransfers, diekein ETL Werkzeug 22, das Controller 26 verwendet,involvieren. Die ersten vier dieser Ziele werden unten detaillierterbeschrieben. Das fünftedieser Ziele ist oben detaillierter beschrieben. [0033] Zuerstkann Datenintegrationsserver 10 Implementierungen von programmatischenSchnittstellen 16 beherbergen, die dazu verwendet werden,Massendatenbewegung zwischen Datenspeichern 12 auszuführen. Wieoben angeführtwird, könnenDatenentitäten,die unter Verwendung einer programmatischen Schnittstelle 16 übertragenwerden, als Ressourcen bezeichnet werden. Eine Ressource kann z.B.eine Datenbanktabelle oder Datenbankansicht, eine oder mehrere Reiheninnerhalb einer Datenbanktabelle oder Datenbankansicht, ein FlatFile oder jede andere geeignete Ansammlung von einer oder mehrerenDatenentitätensein. Ressourcen könnenunter Verwendung angemessener Metadaten oder anderer Informationenbeschrieben werden. Datenintegrationsserver 10 stellt implementierteQuellschnittstellen 16b bereit, um Export von Ressourcenvon den zugeordneten Quelldatenspeichern 12a zu erlauben,und stellt implementierte Zielschnittstellen 16b bereit,um den Import von Ressourcen in zugeordnete Zieldatenspeicher 12b zuerlauben. Fürjede programmatische Schnittstelle 16 kann Datenintegrationsserver 10 Konfigurationsinformationenbeherbergen, die die bei Verwendung der programmatischen Schnittstelle 16 verfügbaren Ressourcendefinieren, (d.h. die Datenentitäten,die fürExport oder Import unter Verwendung von programmatischer Schnittstelle 16 verfügbar sind).Datenintegrationsserver 10 kann generell als eine Datenentitätsschnittstellezwischen Datenspeichern 12, die Anwendungen oder anderenSystemen 14 zugeordnet sind, gesehen werden. [0034] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 jeder programmatischenSchnittstelle 16 erlauben, Daten in deren besonderen, gewünschtenFormat zu produzieren und zu verarbeiten, so dass Datenintegrationsserver 10 zwischenFormaten nur konvertiert, insoweit es gemäß der besonderen, in einem Datentransferinvolvierten programmatischen Schnittstellen 16 nötig ist.Wenn Quellschnittstelle 16a z.B. Daten in Form von JAVADocument Object Model (JDOM) XML Elementobjekten produziert undZielschnittstelle 16b Daten in der Form von JDOM XML Elementobjektenverarbeitet, dann kann ein Elementobjekt, das von Quellschnittstelle 16a produziertwird, direkt zu Zielschnittstelle 16b ohne Konvertierung übertragenwerden. Wenn jedoch Zielschnittstelle 16b stattdessen Datenin einer anderen Form verarbeitet, wie z.B. als ein JAVA Objekt,wird Datenintegrationsserver 10 automatisch das gewünschte JAVAObjekt aus dem JDOM Elementobjekt konstruieren und das JAVA Objektzu Zielschnittstelle 16b weiterleiten. Konvertieren derDaten, die in einem Datentransfer übertragen werden, nur wennnötig entsprechendder besonderen programmatischen Schnittstellen 16, diein dem Datentransfer involviert sind, kann ein wichtiges Merkmalsein. Z.B. könnenReihe-für-Reihe oder Objekt-für-ObjektKonvertierung von großenDatenvolumina hinsichtlich Leistung teuer sein, so dass Vermeidendieser Konvertierung, wo sie unnötigist, die Leistung steigern kann. [0035] Zweitenskann bei einem AusführungsbeispielDatenintegrationsserver 10 Massendatenbewegung von Ressourcenals atomische Datentransfers definieren. In einem besonderen Ausführungsbeispielkann Datenintegrationsserver 10 eine Extensible MarkupLanguage (XML) Konfigurationsdatei verwenden, um die verfügbaren Ressourcenzu beschreiben. Massendatenbewegung von Ressourcen kann dann gemäß dieserXML Konfigurationsdatei definiert werden. Eine Sammlung von XML,JAVA oder anderen geeigneten Komponenten innerhalb von Datenintegrationsserver 10 kanndie Konfiguration und den Status von Datenintegrationsserver 10 beschreibenund modellieren. Jeder atomische Datentransfer, der eine oder mehrereRessourcen involvieren kann, ist vorzugsweise als ein Einzeldatentransferdefiniert. [0036] Drittensstellt bei einem AusführungsbeispielDatenintegrationsserver 10 Datentransferoperationen als Dienstefür denRest der Systeminfrastruktur bereit. In diesem Fall schließt die Systeminfrastruktureine dienstbasierte Architektur ein und Datenintegrationsserver 10 stelltMassendatentransferdienste zur Verfügung. Datentransfers können vonClients und anderen Prozessen in dem gesamten Integrationsumgebungin derselben Weise, wie jeder Dienst in dem gesamten Integrationsumgebungaufgerufen wird, ausgeführtwerden, einschließlichdurch Verwendung einer geeigneten Infrastruktur-Client-Schnittstelle. EineSammlung von XML, JAVA, oder anderen geeigneten Komponenten kanndie Schnittstellenimplementierung und -funktionalität zur Verfügung stellen,um Datentransfers als Dienste bereitzustellen. [0037] Viertensstellt bei einem AusführungsbeispielDatenintegrationsserver 10 Konnektivität zu ETL Werkzeug 22 zurVerfügungund erlaubt Exportieren von Ressourcen zu und Importieren von Ressourcenvon ETL Werkzeug 22. Auf diese An können End-zu- End Datenbewegungen, die sich auf ETLWerkzeug 22 verlassen, entworfen und ausgeführt werden.Bei einem besonderen Ausführungsbeispielkann Datenintegrationsserver 10 fünf Hauptkomponenten einschließen, diekooperieren, um solche ETL Werkzeug-Konnektivität zur Verfügung zu stellen: (1) XML undJAVA Konfiguration und Modellierung für das Zuweisen von Ressourcenauf ETL Werkzeug-Entitäten;(2) XML und JAVA Code, um Ausführungvon ETL Prozessen zu konfigurieren und kontrollieren; (3) JAVA Code,um Export von Daten von einer Quellschnittstelle 16a zuETL Werkzeug 22 zu handhaben; (4) JAVA Code, um Importvon Daten von ETL Werkzeug 22 und Kommunikation der importiertenDaten zu einer Zielschnittstelle 16b zu handhaben; und(5) JAVA Code, um bestimmte Abschnitte des FTP Server Protokollsfür Konnektivität zu implementieren. [0038] Datenintegrationsserver 10 kannAnwendungsintegration am Datenschicht-Level ermöglichen. Bei einem Ausführungsbeispielkann Datenintegrationsserver 10 an den Rest der Systeminfrastruktur,die in diesem Beispiel als Anwendungsintegrationslayer 30 dargestelltist (welcher als „frontbus" Layer bezeichnetwerden kann), in derselben An wie eine herkömmliche Anwendungsschnittstelleanschließen.Bei einem Ausführungsbeispielist Datenintegrationsserver unter Verwendung von JAVA Remote MethodInvocation (RMI) Bindungen zugänglichgemacht. Datenintegrationsserver 10 kann als Dienste Operationenwie z.B. eine "executeDataTransfer" Operation 32 bereitstellen.In diesem Fall könnenAnwendungen oder andere Systeme 14, die Datenspeichern 12 zugeordnetsind, oder andere Anwendungen oder Systeme, die nicht Datenspeichern 12 zugeordnetsind, einfach die "executeDataTransfer" Operation 32 aufrufen,um Datentransfers zwischen Datenspeichern 12 auszuführen. Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 in Verbindung mit Anwendungsintegrationslayer 30 alsTeil eines Infrastruktur-Dienste-Pakets installiert werden, dasauf Gruppen ausgerichtet ist, die einem Unternehmen zugeordnet sind,wie z.B. Produktentwicklungsteams, Lösungs- und Template-Entwicklungsteams,Implementierungsteams und Kunden. [0039] BeispielhafteDetails, die Ressourcen, Quellschnittstellen 16a, Zielschnittstellen 16b,relationale Schnittstellen 18 und Sitzungsschnittstellen 20 betreffen,werden unten beschrieben. [0040] Wieoben beschrieben, könnendie Datenentitäten,die in einem Massendatentransfer unter Verwendung von einer odermehreren programmatischen Schnittstellen 16 übertragenwerden, als Ressourcen bezeichnet werden. Jeder Datentransfer kanneine oder mehrere Ressourcen beinhalten, und jede Ressource kanneine oder mehrere Datenentitätenbeinhalten. In einem Ausführungsbeispielwerden Ressourcen innerhalb des Kontextes einer bestimmten programmatischenSchnittstelle 16 definiert. Z.B. können eine oder mehrere Ressourcenfür jedeQuellschnittstelle 16a definiert werden („Quellressourcen") und eine oder mehrere Ressourcenkönnenfür jedeZielschnittstelle 16b definiert werden („Zielressourcen"). Wenn bestimmteDatentransfers immer eine bestimmte Gruppe von Ressourcen exportierenoder importieren, dann wird diese Gruppe vorzugsweise in einer einzelnenQuellschnittstelle 16a bzw. Zielschnittstelle 16b definiert.Alle Datenentitäteninnerhalb eines Datenspeichers 12 müssen nicht unbedingt innerhalbvon Datenintegrationsserver 10 als Ressourcen bereitgestelltwerden. Ein Auftragsmanagementsystem kann z.B. erfordern, dass BenutzerKaufaufträgeunter Verwendung einer Transaktionsschnittstelle kreieren, so dasseine Zielschnittstelle 16b nicht für Datenentitäten innerhalbeines zugeordneten Datenspeichers 12 kreiert wird, dieAufträgedarstellen, und somit werden fürdiese Datenentitätenkeine Zielressourcen definiert. Jedoch können andere Datenentitäten, die historischeKaufauftragsdaten darstellen, innerhalb Datenspeicher als Quellressourcenzum Export unter Verwendung einer Quellschnittstelle 16a bereitgestelltwerden. [0041] Ineinem Ausführungsbeispielmuss eine Ressourcendefinition füreine Ressource ein oder mehrere Infrastrukturdienstetypen oder anderengeeignete native Typen fürdie Ressource spezifizieren. Definieren einer Ressource kann ohneEinschränkungeinschließen:(1) Entwerfen von geeignetem Export- und Importschema; (2) Kreierendes native Typs fürdie Ressource; und (3) Identifizieren von geeigneter Datenintegrationsserver-Konfigurationsinformationenfür dieRessource. Jeder von diesen ist unten beschrieben. [0042] Entwerfendes Export- und Importschemas füreine Ressource umfasst Identifizieren der Datenentitäten, dieexportiert bzw. importiert werden unter Verwendung der Quellschnittstelle 16a bzw.Zielschnittstelle 16b, für die die Ressource definiertist. In einfachen Fällenkönnendie Datenentitätenindividuelle Dateien, Tabellen oder andere in sich geschlosseneDatenobjekte sein. In komplexen Fällen können die Datenentitäten programmatischaus einem darunter liegenden Datenspeicher 12 konstruiertwerden. Nachdem die zu exportierenden oder importierenden Datenentitäten identifiziertwurden, könnendiese Datenentitätenschematisch definiert werden. Das Schema kann flach (wie z.B. für Text-Dateienoder relationale Tabellen) oder hierarchisch (wie z.B. für XML-Dateien oder komplexeDatenobjekte) sein, abhängigvon der Datenentität. [0043] Erzeugendes native Typs füreine Ressource kann Definieren von native Typen umfassen, um das Schemajeder der Ressource zugeordneten Datenentität zu repräsentieren. Jede zu exportierendeoder importierende Datenentitätist einem nativen Typ zugeordnet. Native Typen können wieder verwendet werden,so dass es eine Eine-zu-Vielen Beziehung zwischen native Typen undDatenentitätenund somit auch eine Eine-zu-Vielen Beziehung zwischen native Typenund Ressourcen geben kann. Wenn nativ Typen definiert werden, können Basistypenverwendet werden, um die Dimensionen von Elementen, wo es möglich ist,zu begrenzen oder weiter zu spezifizieren. Basistypen können z.B.verwendet werden, um die maximale Länge von Elementen zu identifizieren.Wenn eine Datenentitätbenutzerdefinierte Felder (UDFs) oder andere Elemente auf einerimplementierungsspezifischen Basis haben kann, kann eine geeigneteDefinition von nativen Typen davon abhängen, ob die Datenentität flachoder hierarchisch ist. Fürflache Datenentitätenkann es sein, dass der native Typ keine Elemente entsprechend denUDFs benötigt.Stattdessen könnenprogrammatische Schnittstellen 16 bei Ausführung UDFsin einem „flexFeld" oder eineranderen geeigneten Stelle platzieren. Für hierarchische Datenentitäten kannder native Typ ein Element einschließen, um UDFs zu enthalten.Sobald Definitionen von nativen Typen komplett sind, können dieseDefinitionen von nativen Typen eingecheckt und versionsgeprüft werden.Ein geeignetes Script kann währenddes Aufbaus verwendet werden, um z.B. zugeordnete JAVA Klassen zu generieren,die mit anderen programmatischen Schnittstellencodes kompiliertund gepackt werden können.Metadaten fürDefinitionen von nativen Typen könnenauch als Teil einer programmatischen Schnittstelle 16 veröffentlichtwerden. [0044] Datenintegrationsserver-Konfigurationsinformationenkönnenidentifiziert werden müssen.Ressourcen könnenzusätzlicheInformationen benötigenoder zulassen, wenn sie in der Datenintegrationsserver-Konfigurationdefiniert werden. Die einfachsten Ressourcen können einfach auf den nativenTyp Bezug nehmen, der in ein Datentypattribut exportiert wurde.Zum Beispiel: [0045] Wenndie Ressource keine Parameter oder Definitionsdaten benötigt, istdie Ressourcendefinition jetzt komplett. [0046] KomplexereRessourcen könnenParameter beinhalten, um Flexibilität darin zu ermöglichen,wie Datenentitätenexportiert oder importiert werden. Eine beispielhafte Ressourcendefinition,die zwei Parameter einschließt,ist wie folgt: [0047] Ressourcenkönnenauch Definitionsdaten beinhalten, die einen nativen Typ einschließen, derdie zu exportierende oder importierende Datenentität weiterdefiniert. Wenn eine Ressource solche Definitionsdaten benötigt, kannder benötigtenative Typ in einer <SourceType> oder <TargetType> Definition spezifiziertwerden. An dieser Stelle des Ressourcenentwurfs jedoch sollte eineAnforderung fürsolche Definitionsdaten vorzugsweise identifiziert und der unterstützende nativeTyp erzeugt werden. Eine relationale Quellschnittstelle 16a (diein diesem Beispiel eine Structured Query Language (SQL) Anfragebeinhaltet) kann z.B. den nativen Typ SQLSourceResourceConfig verwenden,um Definitionsdaten zur Verfügungzu stellen: [0048] Schließlich können Metadatenfür zusätzlichenative Typen, die fürRessourcendefinition erzeugt wurden, mit anderen programmatischenSchnittstellen-Metadatengepackt werden, und JAVA Klassen für Ressourcendefinitions-Nativtypenkönnengeneriert, kompiliert und in das geeignete Packet mit anderen geeignetenprogrammatischen Schnittstellencodes eingebunden werden. [0049] Beieinem Ausführungsbeispielkann ein einzelner Datentransfer mehrere Quelldatenspeicher 12 involvieren,und eine einzelne Quellschnittstelle 16a wird für jedenQuelldatenspeicher 12 implementiert (d.h. alle Quellressourcenfür denDatentransfer, die innerhalb desselben Quelldatenspeichers 12 sind,werden vorzugsweise unter Verwendung derselben Quellschnittstelle 16a bereitgestellt).So sind bei diesem Ausführungsbeispielmehrere Quellschnittstellen 16a notwendig, wenn der Datentransfermehrere Quelldatenspeicher 12 involviert. Die eine odermehreren Quellschnittstellen 16a für einen Datentransfer sindvorzugsweise als Attribute in einem oder mehreren <Step> Elementen des Datentransfersspezifiziert, wobei jeder solche Schritt Export von einer oder mehrerenRessourcen von einem Datenspeicher 12 beinhaltet, der über einezugeordnete Quellschnittstelle 16a verfügt. Da bei einem Ausführungsbeispieleine Quellschnittstelle 16a für die Dauer eines Datentransfersbestehen bleibt (d.h. überalle Schritte des Datentransfers), kann es wünschenswert sein, Konfigurationsinformationenfür Verbindungsressourcenoder Parameter zu verwenden und einen Konfigurationstyp für Quellschnittstelle 16a entsprechendzu definieren. [0050] Beieinem Ausführungsbeispielwird eine Quellschnittstelle 16a für jede Ressource, die in einenDatentransfer unter Verwendung von Quellschnittstelle 16a involviertist, einen Iterator an Controller 26 zurückschicken.Für jedeRessource wird der Iterator Datenentitäten zurückschicken, die mit der Ressourcendefinition übereinstimmen.Für FlatFiles oder andere flache Datenobjekte mit UDFs, platziert Quellschnittstelle 16a vorzugsweisezusätzlicheName/Wert Paare in „flexFeldern" oder anderengeeigneten Stellen fürdie Datenobjekte. Fürhierarchische Datenobjekte könnenUDFs explizit definiert werden. Ressourcendefinitionen sind vorzugsweiseauf die Datenentitäten,die unter Verwendung von Quellschnittstelle 16a exportiertwerden, zugeschnitten. Wenn das Schema einer Ressource bekannt ist,aber die Daten zum Besetzen der Ressource von Datentransfer zu Datentransferabweichen können,könneneher Parameter verwendet werden, als verschiedene Ressourcen zudefinieren. Jedoch kann es fürschematisch unterschiedliche Datenentitäten notwendig sein, unterschiedlicheRessourcen zu definieren. Definitionsdaten können verwendet werden, um Ressourcenflexibilität weiterauszudehnen. [0051] Beieinem AusführungsbeispielkönnenSitzungsschnittstellen 20 verwendet werden, um Verbindungsressourcenoder -zuständezu halten. Quellschnittstellen 16a und Zielschnittstellen 16b können sichSitzungsschnittstellen 20 teilen. Somit können schwereRessourcen, die am Sitzungsschnittstellenlevel geteilt wurden, Vorteilaus dieser Funktionalitätziehen. Wie oben beschrieben ist, können Sitzungsschnittstellen 20 zwischen Datentransfersbestehen bleiben. Somit sollten, besonders wenn eine Quellschnittstelle 16a nurfür dieDauer eines einzelnen Datentransfers bestehen bleibt, Verbindungsressourcenoder -zustände,die zwischen verschiedenen Datentransfers bestehen bleiben sollen,vorzugsweise in einer Sitzungsschnittstelle 20 enthalten sein. [0052] Beieinem Ausführungsbeispielstellt eine Quellschnittstelle 16a eine einzelne Instanzeiner geeigneten JAVA Quellschnittstelle API dar. Eine Quellschnittstelle 16a kann dafür ausgelegtsein, alle Ressourcen von einem logischen Datenspeicher zu exportieren,wie z.B. ein einzelnes relationales Schema oder eine Sammlung vonverbundenen Flat Files. Eine Quellschnittstelle 16a kannin der Datenintegrationsserver-Konfigurationsdatei durch ihren Namenund die Implementierungsklasse definiert werden. [0053] ZumBeispiel: [0054] UmWiederverwendung von gemeinsamen Schnittstellenmechanismen zuzulassen,könnengeeignete Basisquellschnittstellen 16a in der Datenintegrationsserver-Konfigurationsdateiauf Quelltypen definiert werden. [0055] ZumBeispiel: [0056] Indiesem Fall implementiert der Quelltyp MySourceType die JAVA QuellschnittstelleAPI, die mehreren Quellschnittstellen 16a erlaubt, sichauf denselben Quelltyp zu beziehen. Obwohl jede dieser Quellschnittstellen 16a über unterschiedlicheRessourcen und unterschiedliche Konfigurationsinformationen verfügen kann,verwenden diese Quellschnittstellen 16a alle den Basisquellschnittstellencodewieder (d.h. den Code in der Klasse corn.i2.myProduct.mySource indiesem Beispiel). [0057] Beieinem AusführungsbeispielkönnenQuelltypen, die in einem <SourceType> Element in der Datenintegrationsserver-Konfigurationsdateidefiniert sind, einen Konfigurationstyp bestimmen. Dieser Konfigurationstypkann ein nativer Typ sein, der alle passenden Konfigurationsinformationenfür dieQuellschnittstelle 16a einschließt, wie Datenbankverbindungsinformationen.Zum Beispiel: [0058] Beidiesem Beispiel ist der configurationType von SQLSource SQLSourceConfig,ein definierter nativer Typ. Konfigurationselemente in der Datenintegrationsserver-Konfigurationsdateistimmen mit dieser Typ- Definition überein. Folgendes ist einebeispielhafte Verwendung des SQLSourceConfig Konfigurationstyps. [0059] Wieoben beschrieben bleibt bei einem Ausführungsbeispiel eine Quellschnittstelle 16a ausschließlich für die Dauereines einzelnen Datentransfers bestehen. Wenn Quellschnittstelle 16a mitdem Datentransfer beginnt, wird eine geeignete Methode aufgerufen,welche zu Quellschnittstelle 16a das geeignete Konfigurationsobjekt,falls es eines gibt, weiterleitet. Da bei einem AusführungsbeispielQuellschnittstelle 16a für die Dauer des Datentransfersbestehen bleibt (d.h. überalle Schritte), wird diese Methode nur einmal aufgerufen. Wenn irgendeineKonfiguration auf einer pro Ressourcen Basis notwendig ist, kannes wünschenswertsein, eine geeignete Methode entsprechend zu implementieren. BeiBeendigung des Datentransfers, kann eine geeignete Methode aufgerufenwerden, um jede Verbindung oder andere Ressourcen, die Quellschnittstelle 16a zugeordnetsind, frei zu geben. [0060] Quelltypen,die in einem <SourceType> Element in der Datenintegrationsserver-Konfigurationsdatei definiertsein können,könneneinen Ressourcendefinitionstyp bestimmen, der ein nativer Typ ist,welcher dazu verwendet wird, um Ressourcen für Quellschnittstellen 16a zudefinieren. Zum Beispiel: [0061] Dieskann ein kompletter <SourceType> Element-Tag für SQLSourceTypesein. Er bezieht sich auf den definierten RessourcendefinitionstypSQLSourceResourceConfig. [0062] Folgendesist eine Beispielsdefinition füreine Instanz der SQLSource relationalen Quellschnittstelle 16a undzugeordneten Ressourcen, die diesen nativen Typ verwenden: [0063] Beieinem Ausführungsbeispielkann ein einzelner Datentransfer mehrere Zieldatenspeicher 12 involvierenund eine einzelne Zielschnittstelle 16a kann für jedenZieldatenspeicher 12 implementiert werden (d.h. alle Zielressourcenfür denDatentransfer, die innerhalb desselben Zieldatenspeichers 12 liegen,werden vorzugsweise unter Verwendung derselben Zielschnittstelle 16a bereitgestellt).Somit könnenbei diesem Ausführungsbeispielmehrere Zielschnittstellen 16a benötigt werden, wenn der Datentransfermehrere Zieldatenspeicher 12 involviert. Die eine odermehreren Zielschnittstellen 16a für einen Datentransfer sindvorzugsweise in einem oder mehreren <Step> Elementendes Datentransfers als Attribute spezifiziert, wo jeder solche Schritt Importvon einer oder mehreren Ressourcen in einen Datenspeicher 12 miteiner zugeordneten Zielschnittstelle 16a involviert. Dabei einem Ausführungsbeispieleine Zielschnittstelle 16a nur für die Dauer eines einzelnen Schrittseines Datentransfers bestehen bleibt, kann es wünschenswert sein, die Zielschnittstelle 16b imRahmen eines Sitzungsschnittstellentyps und Sitzungsschnittstelle 20 zudefinieren, um Verbindungsressourcen oder -parameter über einengesamten Datentransfer zu konfigurieren. Ein Konfigurationstyp kannbeim Sitzungsschnittstellentyp oder Zieltyplevel für Konfigurationsinformationendefiniert werden. [0064] Zielschnittstellen 16b können Anfangs-,Verarbeitungs- und Endmethoden fürjede Ressource bereitstellen. Bei einem Ausführungsbeispiel muss die Verarbeitungsmethodefür jedeRessource Datenobjekte verarbeiten, die mit der Ressourcentypdefinitionfür dieRessource übereinstimmen.Für FlatFiles oder andere flache Datenobjekte mit UDFs, kann Zielschnittstelle 16b erwarten,dass jegliche zusätzlichenName/Wert Paare in den „flexFeldern" oder ananderen Stellen fürdie Datenobjekte sind. Fürhierarchische Datenobjekte, könnenUDFs explizit definiert werden. Ressourcendefinitionen sind vorzugsweiseauf die Datenentitätenzugeschnitten, die unter Verwendung von Zielschnittstelle 16b importiertwerden. Wenn das Schema einer Ressource bekannt ist, aber die Datenzum Besetzen der Ressource von Datentransfer zu Datentransfer abweichenkönnen,könneneher Parameter benutzt werden, als unterschiedliche Ressourcen zudefinieren. Für schematischunterschiedliche Datenentitätenjedoch kann es notwendig sein, unterschiedliche Ressourcen zu definieren.Definitionsdaten könnenverwendet werden, um Ressourcenflexibilität weiter auszuweiten. [0065] Beieinem AusführungsbeispielkönnenSitzungsschnittstellen 20 verwendet werden, um Verbindungsressourcenoder -zuständezu halten. Quellschnittstellen 16a und Zielschnittstellen 16b können Sitzungsschnittstellen 20 teilen.Somit könnenschwere Ressourcen, die am Sitzungsschnittstellenlevel geteilt werden, ausdieser FunktionalitätVorteil ziehen. Wie oben beschrieben ist, können Sitzungsschnittstellen 20 zwischen Datentransfersbestehen bleiben. Somit sollten, besonders wenn eine Zielschnittstelle 16b nurfür eineneinzelnen Schritt eines Datentransfers bestehen bleibt, Verbindungsressourcenoder -zustände,die zwischen mehreren Datentransfers bestehen bleiben sollen, vorzugsweisein einer Sitzungsschnittstelle 20 enthalten sein. [0066] Beieinem Ausführungsbeispielrepräsentierteine Zielschnittstelle 16b eine einzelne Instanz einergeeigneten JAVA Zielschnittstelle API. Eine Zielschnittstelle 16b kanndafür ausgelegtsein, alle Ressourcen in einen logischen Datenspeicher zu importieren,wie z.B. ein einzelnes relationales Schema oder eine Sammlung vonverbundenen Flat Files. Eine Quellschnittstelle 16a kannin der Datenintegrationsserver-Konfigurationsdatei durch ihren Namenund die Implementierungsklasse definiert werden. Zum Beispiel: [0067] UmWiederverwenden von gemeinsamen Schnittstellenmechanismen zuzulassen,könnengeeignete Basis-Zielschnittstellen 16b in der Datenintegrationsserver-Konfigurationsdateiauf Zieltypen definiert werden. Zum Beispiel: [0068] Indiesem Fall implementiert der Quelltyp MysourceType die JAVA ZielschnittstelleAPI, was es mehreren Zielschnittstellen 16b erlaubt, aufdenselben Zieltyp Bezug zu nehmen. Obwohl jede dieser Zielschnittstellen 16b unterschiedlicheRessourcen und unterschiedliche Konfigurationsinformationen habenkann, verwenden alle diese Zielschnittstellen 16b den Basiszielschnittstellencodewieder (d.h. den Code in der Klasse corn.i2.myProduct.myTarget indiesem Beispiel). [0069] Beieinem AusführungsbeispielkönnenZieltypen, die in einem <TargetType> Element in der Datenintegrationsserver-Konfigurationsdateidefiniert sind, einen Konfigurationstyp bestimmen. Dieser Konfigurationstypkann ein nativer Typ sein, der alle passenden Konfigurationsinformationenfür dieZielschnittstelle 16b beinhalten kann, wie Datenbankverbindungsinformationen.Zum Beispiel: [0070] DerconfigurationType von FlatFileTarget ist in diesem Beispiel FlatFileTargetConfig,was ein definierter nativer Typ ist. Konfigurationselemente in derDatenintegrationsserver-Konfigurationsdateistimmen mit dieser Typendefinition überein. Folgendes ist einebeispielhafte Verwendung des FlatFileTargetConfig Konfigurationstyps: [0071] Wieoben beschrieben wurde, bleibt bei einem Ausführungsbeispiel eine Zielschnittstelle 16b nurfür eineneinzelnen Schritt innerhalb eines Datentransfers bestehen. WennZielschnittstelle 16b den Schritt beginnt, wird eine geeigneteMethode aufgerufen, welches das entsprechende Konfigurationsobjekt,falls eines vorhanden ist, an Zielschnittstelle 16b weiterleitet.Wo Zielschnittstelle 16b nur für den aktuellen Schritt bestehenbleibt, kann diese Methode mehrere Male aufgerufen werden (d.h.einmal fürjeden Schritt des Datentransfers). Wenn irgendeine Konfigurationauf einer pro Ressourcen Basis notwendig ist, kann es wünschenswert sein,eine geeignete Methode entsprechend zu implementieren. Bei Abschlussdes Schritts kann eine geeignete Methode aufgerufen werden, um jedeVerbindung oder andere, der Zielschnittstelle 16b zugeordnete Ressourcenfreizugeben. [0072] Zieltypen,die in einem <TargetType> Element in der Datenintegrationsserver-Konfigurationsdateidefiniert werden können,könneneinen Ressourcen-Definitionstyp bestimmen, der ein nativer Typ ist,der verwendet wird, um Ressourcen für Zielschnittstellen 16b zudefinieren. Zum Beispiel: [0073] Dieskann ein kompletter <TargetType> Elementen-Tag für SQLTargetTypesein. Er bezieht sich auf den definierten Ressourcen-DefinitionstypSQLTargetResourceConfig. Das Folgende ist eine beispielhafte Definitionfür eineInstanz der SQLTarget relationalen Zielschnittstelle 16b undzugeordneter Ressourcen unter Verwendung dieses nativen Typs: [0074] Beieinem Ausführungsbeispiel,wenn eine oder mehrere programmatische Schnittstellen 16 für einen Datentransferinnerhalb einer Sitzungsschnittstelle 20 definiert werden,dann wird Sitzungsschnittstelle 20 am Anfang des Datentransfersinstanziiert. Jede programmatische Schnittstelle 16, dieinnerhalb einer Sitzungsschnittstelle 20 definiert ist,wird Zugang zu Konfigurationsinformationen haben, die Sitzungsschnittstelle 20 durcheinen geeigneten JAVA Funktionsaufruf oder anderweitig zugeordnetist. Eine Sitzungsschnittstelle 20 kann konfiguriert werden,nur fürdie Dauer eines einzelnen Datentransfers bestehen zu bleiben, sodass Sitzungsschnittstelle 20 bei Abschluss des Datentransfersfreigegeben wird. Alternativ kann eine Sitzungsschnittstelle 20 konfiguriertwerden, um überdie Dauer des Datentransfers hinaus bestehen zu bleiben, so dassSitzungsschnittstelle 20 nicht frei gegeben wird, bevorDatenintegrationsserver 10 nicht heruntergefahren wurde. [0075] Beieinem Ausführungsbeispielrepräsentierteine Sitzungsschnittstelle 20 eine einzelne Instanz einer geeignetenJAVA Sitzungsschnittstelle API. Als Beispiel können alle Quellschnittstellen 16a undZielschnittstellen 16b, die Zugang zu Sitzungsschnittstelle 20 innerhalbihres Kontextes benötigen,wie folgt definiert werden. [0076] UmSitzungsschnittstelle 20 ihre eigene Konfigurationsinformationzur Verfügungzu stellen, die in fast allen Fällennotwendig ist, kann Sitzungsschnittstelle 20 mit einemgeeigneten <SessionObjectType> definiert werden.Dies erlaubt die Verwendung eines configurationType Attributs. ZumBeispiel: [0077] Indiesem Fall implementiert der Sitzungsschnittstellentyp MySessionObjectTypedie JAVA Sitzungsschnittstelle API, was es mehreren Sitzungsschnittstellen 20 erlaubt,auf denselben Sitzungs-Objekttyp Bezug zu nehmen. [0078] Beieinem AusführungsbeispielkönnenSitzungs-Objekttypen, die in einem <SessionObjectType> Element in der Datenintegrationsserver-Konfigurationsdateidefiniert sind, einen Konfigurationstyp bestimmen. Dieser Konfigurationstypkann ein nativer Typ sein, der alle passenden Konfigurationsinformationenfür dieSitzungsschnittstelle 20 beinhaltet, wie z.B. Datenbankverbindungsinformationen.Zum Beispiel: [0079] DerconfigurationType von SQLTargetSession ist in diesem Fall SQLTargetSessionConfig,ein definierter nativer Typ. Die Konfigurationselemente in der Datenintegrationsserver-Konfigurationsdateistimmen mit dieser Typendefinition überein. Das Folgende ist einebeispielhafte Verwendung des SQLTargetSessionConfig Konfigurationstyps: [0080] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 jegliche Anzahl von Standard-Quellschnittstellen 16a,-Zielschnittstellen 16b und -Sitzungsschnittstellen 20 unterstützen, umallgemeine Fähigkeit zuDatenexport und -import zur Verfügungzu stellen. Nur als Beispiel und nicht als Limitierung können programmatischeStandard-Schnittstellen 16 für Flat Files,relationale Datenspeicher 12, XML Dateien und alle anderengeeigneten Datenspeicher 12 oder Datenobjekte zur Verfügung gestelltwerden. Standard-Sitzungsschnittstellen 20 können zurVerfügunggestellt werden, um Daten von bestimmten Datenspeichern 12 oder Datenobjektenzu exportieren und importieren. Nur als Beispiel und nicht als Limitierungkann es notwendig sein, eine relationale Standard-Sitzungsschnittstelle 20 inVerbindung mit relationalen programmatischen Standard-Schnittstellen 16 zuverwenden. [0081] EineStandard-Flat-File-Quellschnittstelle 16a innerhalb vonDatenintegrationsserver 10 kann Exportieren von Daten voneiner Gruppe von Flat Files erlauben. Bei einem Ausführungsbeispielentspricht jeder exportierte Flat File, einer einzelnen Ressource,wenn ein Datentransfer definiert wird. Eine Ressourcendefinition undein nativer Typ werden entsprechend für jeden Flat File definiert.Konfigurationsinformationen füreine Standard-Flat-File-Quellschnittstelle 16a können verwendetwerden, um das Format, den Verzeichnisort und Extension von jedemFlat File anzugeben. [0082] EineStandard-Flat-File-Zielschnittstelle 16b innerhalb vonDatenintegrationsserver 10 kann Schreiben oder anderweitigesImportieren von Flat Files als Ausgabe von Datentransfers zulassen.Bei einem Ausführungsbeispielentspricht jeder importierte Flat File einer einzelnen Ressource,wenn ein Datentransfer definiert wird. Eine Ressourcendefinitionund ein nativer Typ werden fürjeden Flat File entsprechend definiert. Konfigurationsinformationenfür eineStandard-Flat-File-Zielschnittstelle 16b können verwendetwerden, um das Format, den Verzeichnisort und Extension anzugeben,um Daten in Flat Files zu Schreiben oder anderweitig zu importieren. [0083] Einerelationale Standard-Quellschnittstelle 16a innerhalb vonDatenintegrationsserver 10 kann einen allgemeinen Weg zurVerfügungstellen, um Daten von einem relationalen Datenspeicher 12 zuexportieren. Relationale Standard-Quellschnittstelle 16a kannmit geeigneten Datenbankverbindungsinformationen konfiguriert werdenund kann auch logisch-zu-physikalische Zuweisungsinformationen für die zuexportierenden Ressourcen beinhalten. Bei einem Ausführungsbeispielentspricht jede fürrelationale Standard-Quellschnittstelle 16a definierteRessource einem Ergebnis-Set,das der darunter liegende Datenspeicher 12 generiert. DieRessourcen-Konfiguration kann ein SQL Statement einschließen, dasnotwendig ist, um das gewünschte Ergebnis-Setzu generieren. Ressourcenkonfigurationen können Werte, die gebunden werden,wenn der Datentransfer ausgeführtwird, einschließen,die als Parameter bezeichnet werden. Verwenden von Parametern kannes einer einzelnen Ressourcenkonfiguration erlauben, eine Vielzahlvon Datentransfers zu unterstützen. [0084] Einerelationale Standard-Zielschnittstelle 16b innerhalb vonDatenintegrationsserver 10 kann einen allgemeinen Weg zurVerfügungstellen, um Daten in einem relationalen Datenspeicher 12 zuimportieren oder zu löschen. Ähnlich zurelationaler Standard-Quellschnittstelle 16a kann ein SQLStatement, das nötigist, um die Import- oder Löschoperationauszuführen,verwendet werden, um jede Ressource, die für relationale Standard-Zielschnittstellen 16b definiertist, zu konfigurieren. Ressourcenkonfigurationen können Werte,die gebunden werden, wenn der Datentransfer ausgeführt wird,einschließen.Relationale Standard-Zielschnittstelle 16b kann konfiguriertwerden, um diese Werte von Quelldatenentitäten während des Datentransfers zubesetzen oder um diese Werte als Parameter zu definieren, ähnlich denRessourcen fürrelationale Standard-Quellschnittstelle 16a. Wenn einebestimmte relationale Standard-Zielschnittstelle 16b nichtfür Massenimportoperationenhinsichtlich bestimmter Datenspeicher 12 gedacht ist, kanneine andere relationale Standard-Zielschnittstelle 16b implementiertwerden, um eine hoch optimierte Lösung für solche Situationen zur Verfügung zustellen. [0085] Beieinem Ausführungsbeispielmuss eine relationale Standard-Zielschnittstelle 16b immerin Zusammenhang mit einer standardmäßigen oder anderen relationalenSitzungsschnittstelle 20 verwendet werden und innerhalbdieser Sitzungsschnittstelle 20 definiert werden, die mitgeeigneten Datenbankverbindungs- und logisch-zu-physikalischen Zuweisungsinformationenkonfiguriert werden kann. Dies ist der Fall, da ein Datentransfermehrere Schritte beinhalten kann, von denen sich jeder auf einenanderen Datenspeicher 12 beziehen kann, so dass Verbindungsinformationenam Sitzungsschnittstellen-Level beibehalten werden müssen, umfür dengesamten Datentransfer bestehen zu bleiben. Die Verbindungskonfigurationfür einerelationale Standard-Sitzungsschnittstelle 20 kann ähnlich mitder fürrelationale Standard-Quellschnittstelle 16a sein. Wenn einerelationale Standard-Zielschnittstelle 16b für Massenimportoperationenhinsichtlich bestimmter Datenspeicher 12 hoch optimiertist, kann eine entsprechende relationale Standard-Sitzungsschnittstelle 20 zurVerfügunggestellt werden, um jegliche Abhängigkeitenunter den Schritten von Datentransfers aufzulösen und um die Ziel-Datenspeicher 12 inder optimalen Reihenfolge zu laden. [0086] EineXML Standard-Quellschnittstelle 16a innerhalb von Datenintegrationsserver 10 kanneine grundlegende Schnittstelle zur Verfügung stellen, um bestimmteXML Daten, die mit Datenintegrationsserveranforderungen konformsind, zu exportieren. Bei einem Ausführungsbeispiel arbeitet eineXML Quellschnittstelle 16a, indem jedes Nachfolgerelementdes Wurzelelements der XML Quelldatei als ein Datenobjekt exportiert wird.XML Standard-Quellschnittstelle 16a muss nicht die Fähigkeitzur Verfügungstellen, von beliebigem XML auf den nativen Typ der Ressource abzubildenoder individuelle exportierte Datenobjekte zu analysieren oder zuvalidieren. [0087] EineStandard XML Zielschnittstelle 16b innerhalb von Datenintegrationsserver 10 kanneine grundlegende Schnittstelle zum Importieren bestimmter XML Datenzur Verfügungstellen, die mit Datenintegrationsserveranforderungen konform ist.Bei einem Ausführungsbeispielschreibt Standard XML Zielschnittstelle 16b eine XML Dateifür jedeRessource und arbeitet, indem jedes Datenobjekt als ein Nachfolgerelementdes Wurzelelements der XML Datei eingefügt wird. Wie Standard XML Quellschnittstelle 16a mussStandard XML Zielschnittstelle 16b nicht die Fähigkeitzur Verfügungstellen, individuelle importierte Datenobjekte zu analysieren oderzu validieren. [0088] 2 stellt ein beispielhaftesVerfahren einer Datenintegration unter Verwendung eines Datenintegrationssystemsmit programmatischen Quell- und Zielschnittstellen dar. Das Verfahrenist der Einfachheit halber so beschrieben, dass es einen einzelnenMassendatentransfer involviert, bei dem ein oder mehrere Quellschnittstellen 16a verwendetwerden, die nur fürdie Dauer des Datentransfers bestehen bleiben, ein oder mehrereZielschnittstellen 16b verwendet werden und jede Zielschnittstellenur währendeines einzelnen Schritts des Datentransfers bestehen bleibt, eineSitzungsschnittstelle 28 zur Verfügung gestellt wird, die nurfür die Dauerdes Datentransfers bestehen bleibt und eine Transformationsschnittstellezur Verfügunggestellt wird, die nur fürdie Dauer des Datentransfers bestehen bleibt. [0089] DasVerfahren beginnt bei Schritt 100, wo eine Anwendung oderanderes System 14 Datenintegrationsserver 10 aufruftund einen Massendatentransfer von einem oder mehreren Quelldatenspeichern 12a zu einemoder mehreren Zieldatenspeichern 12b anfordert. Bei einemAusführungsbeispielinstanziiert Datenintegrationsserver eine Sitzungsschnittstelle 20 für den Datentransferbei Schritt 102, instanziiert eine Transformationsschnittstelle 28 für den Datentransferbei Schritt 104, instanziiert eine oder mehrere Quellschnittstellen 16a für den einenoder die mehreren Quelldatenspeicher 12a für den Datentransferbei Schritt 106 und instanziiert eine oder mehrere Zielschnittstellen 16b für den einenoder die mehreren Zieldatenspeicher 12b für einen erstenSchritt des Datentransfers bei Schritt 110. Während dieseReihenfolge bei einem besonderen Ausführungsbeispiel bevorzugt werdenkann, könnenSchnittstellen 16a, 16b, 20 und 28 injeder geeigneten Reihenfolge instanziiert werden. [0090] BeiSchritt 110 instruiert Datenintegrationsserver 10 jedeQuellschnittstelle 16a, einen oder mehrere angeforderteRessourcen von ihrem Quelldatenspeicher 12a zu extrahieren.Als Antwort bei Schritt 112 extrahiert jede Quellschnittstelle 16a eineDatenidentität(z.B. eine Reihe, ein Objekt oder andere Datenentität), die dereinen oder den mehreren angeforderten Ressourcen zugeordnet ist,von ihrem Quelldatenspeicher 12a. Die Datenentität wird zuTransformationsschnittstelle 28 bei Schritt 114 weitergeleitet,und bei Schritt 116 wendet Transformationsschnittstelle 28 ihrezugeordnete Transformationslogik zum Transformieren der extrahiertenDatenentitätan. Die transformierte Datenentität wird dann an eine geeigneteZielschnittstelle 16b bei Schritt 118 weitergeleitetund Zielschnittstelle 16b lädt die Datenentität in ihrenZieldatenspeicher 12b bei Schritt 120. Fall einenächsteDatenentitätfür dieeine oder die mehreren angeforderten Ressourcen bei Schritt 122 existiert,dann kehrt das Verfahren zu Schritten 112-118 zum Extrahieren,Transformieren und Laden des nächstenDatenentitätzurück. [0091] Beieinem Ausführungsbeispielwerden Schritte 112-118 individuell für jede Datenentität, die dereinen oder den mehreren angeforderten Ressourcen innerhalb jedesQuelldatenspeichers 12a zugeordnet ist, ausgeführt, entwederseriell (z.B. Datenentitätfür Datenentität für einenersten Quelldatenspeicher 12a, Datenentität für Datenentität für einenzweiten Quelldatenspeicher 12a, Datenentität für Datenentität für einendritten Quelldatenspeicher 12a, und so weiter), im Wesentlichensimultan (Datenentitätfür Datenentität für jeden Quelldatenspeicher 12a,wobei Datenentitätenfür einenersten Quelldatenspeicher 12a, im Wesentlichen simultanmit Datenentitätenfür einenzweiten Quelldatenspeicher 12a, einen dritten Quelldatenspeicher 12a und soweiter verarbeitet werden) oder in jeder anderen geeigneten Weise.Wenn die Transformationsschnittstelle 28 zugeordnete Transformationnicht auf einer Datenentitätfür Datenentität Basisausgeführtwerden kann, dann kann ein Fluss von Datenentität für Datenentität auf beidenSeiten der Transformation erreicht werden (z.B. Datenentität für Datenentität in dieTransformation, Transformation von allen Datenentitäten, dannDatenentitätfür Datenentität aus derTransformation), um effektiv ein im Wesentlichen ähnlichesResultat zu erlangen. [0092] Wenneine nächsteDatenentitätfür dieeine oder die mehreren angeforderten Ressourcen bei Schritt 122 nichtexistiert, dann fährtdas Verfahren mit Schritt 124 fort, wo bei diesem besonderenAusführungsbeispielDatenintegrationsserver 10 die eine oder mehreren Zielschnittstellen 16b für den erstenSchritt des Datentransfers freigibt. Wenn es einen nächsten Schrittdes Datentransfers bei Schritt 126 gibt, dann instanziiert Datenintegrationsserver 10 eineoder mehrere Zielschnittstellen 16b für den einen oder die mehrerenZieldatenspeicher 12b fürden nächstenSchritt des Datentransfers bei Schritt 128 und das Verfahrenkehrt zu Schritt 110 zurück. Wenn es keinen nächsten Schrittdes Datentransfers bei Schritt 126 gibt, dann gibt Datenintegrationsserver 10 alleQuell-, Sitzungs- und Transformationsschnittstellen 16a, 20 und 28 für den Datentransfer beiSchritt 130 frei und das Verfahren endet. [0093] Obwohldie vorliegende Erfindung mit einigen Ausführungsbeispielen beschriebenwurde, kann dem Fachmann eine Vielzahl von Änderungen, Ersetzungen, Variationen,Abänderungenund Modifikationen naheliegen, und es ist beabsichtigt, dass dievorliegende Erfindung sämtlichesolche Änderungen,Ersetzungen, Variationen, Abänderungenund Modifikationen einschließt,die in den Gedanken und Umfang der beigefügten Ansprüche fallen.
权利要求:
Claims (32) [1] System zum Ausführen von Massendatentransferszwischen persistenten Datenspeichern, aufweisend: einen Datenintegrationsserver,der an einen oder mehrere persistente Datenspeicher gekoppelt ist; eineoder mehrere programmatische Quellschnittstellen, wobei jede einementsprechenden Quelldatenspeicher zugeordnet ist, entsprechend einergemeinsamen programmatischen Quellschnittstellenspezifikation definiertist und innerhalb des Datenintegrationsservers während eines Massendatentransfersbereitgestellt wird, um es dem Datenintegrationsserver zu ermöglichen,eine oder mehrere Datenentitätenvon dem entsprechenden Quelldatenspeicher zum Laden in irgendeinenoder mehrere ausgewählteZieldatenspeicher währenddes Massendatentransfers zu extrahieren; und eine oder mehrereprogrammatische Zielschnittstellen, wobei jede einem entsprechendenZieldatenspeicher zugeordnet ist, entsprechend einer gemeinsamenprogrammatischen Zielschnittstellenspezifikation definiert ist undinnerhalb des Datenintegrationsservers während eines Massendatentransfersbereitgestellt wird, um es dem Datenintegrationsserver zu ermöglichen,eine oder mehrere Datenentitäten,die von irgendeinem oder mehreren ausgewählten Quelldatenspeichern während desMassendatentransfers extrahiert wurden, in den entsprechenden Zieldatenspeicherzu laden; wobei jede programmatische Schnittstelle: dementsprechenden Datenspeicher eine Abstraktion von Massendatentransferoperationeninnerhalb des Datenintegrationsservers zur Verfügung stellt, so dass eigener-Codenicht in Verbindung mit dem entsprechenden Datenspeicher entwickeltwerden muss, um Massendatentransfers zwischen dem entsprechendenDatenspeicher und jedem anderen bestimmten Datenspeicher zu ermöglichen;und spezifische Details, die dem entsprechenden Datenspeicherzugeordnet sind, von Datenintegrationsserver isoliert, so dass eigener-Codenicht in Verbindung mit dem Datenintegrationsserver entwickelt werdenmuss, um Massendatentransfers zwischen dem entsprechenden Datenspeicherund jedem anderen bestimmten Datenspeicher zu ermöglichen. [2] System nach Anspruch 1, wobei die programmatischenSchnittstellen JAVA Schnittstellen aufweisen. [3] System nach Anspruch 1, wobei: eine programmatischeSchnittstelle innerhalb des Datenintegrationsservers als eine Industriestandardschnittstellebereitgestellt werden kann, die Massendatentransfers gemäß einemIndustriestandardprotokoll unterstützt; und der Datenintegrationsserverin der Lage ist, um: eine Anfrage von einem Client zu empfangen,die anzeigt, dass der Client gemäß dem IndustriestandardprotokollDaten von einem Datenspeicher extrahiert oder Daten in einen Datenspeicherlädt; dieentsprechende programmatische Schnittstelle zu erzeugen, um Extraktionder Daten vom oder Laden der Daten in den Datenspeicher zu ermöglichen;und zur Datenextraktion, währenddie programmatische Quellschnittstelle die von dem Datenspeicherextrahierten Daten produziert, die abgehenden Daten gemäß dem Industriestandardprotokollzum Client zu senden; oder zum Datenladen, während dieDaten gemäß dem Industriestandardprotokollvom Client ankommen, die eingehenden Daten zum Laden in den Datenspeicheran die programmatische Zielschnittstelle zu senden. [4] System nach Anspruch 3, wobei der Datenintegrationsserveres einem Client, der fürMassendatentransfers ein Industriestandardprotokoll unterstützt, erlaubt,Massendatentransfers in Bezug auf einen bestehenden Datenspeicherdurchzuführen,wobei eine programmatische Schnittstelle verwendet wird, ob nunein bestehender Datenspeicher oder eine zugeordnete, bestehendeAnwendung selbst Massendatentransfers gemäß dem Industriestandardprotokollunterstütztoder nicht. [5] System nach Anspruch 1, wobei: eine programmatischeQuell-Schnittstelle innerhalb des Datenintegrationsservers als eineIndustriestandard File Transfer Protocol (FTP) Schnittstelle bereitgestelltwerden kann, die Massendatentransfers gemäß einem FTP Industriestandardprotokollunterstützt;und der Datenintegrationsserver in der Lage ist, um: eseinem FTP Client zu erlauben, eine FTP Verbindung zu öffnen, dieden Datenintegrationsserver darüberinformiert, dass der FTP Client einen Datenstrom vom entsprechendenQuelldatenspeicher herunterlädt; dieprogrammatische Quellschnittstelle zu erzeugen, um Extraktion desDatenstroms von dem entsprechenden Quelldatenspeicher zu ermöglichen;und, währenddie programmatische Quellschnittstelle den von dem entsprechendenQuelldatenspeicher extrahierten Datenstrom produziert, den abgehendenDatenstrom in Übereinstimmungmit FTP zum FTP Client zu senden. [6] System nach Anspruch 1, wobei: eine programmatischeZiel-Schnittstelle innerhalb des Datenintegrationsservers als eineIndustriestandard File Transfer Protocol (FTP) Schnittstelle bereitgestelltwerden kann, die Massendatentransfers gemäß einem FTP Industriestandardprotokollunterstützt;und der Datenintegrationsserver in der Lage ist, um: eseinem FTP Client zu erlauben, eine FTP Verbindung zu öffnen, dieden Datenintegrationsserver darüberinformiert, dass der FTP Client einen Datenstrom zum entsprechendenZieldatenspeicher hochlädt; dieprogrammatische Zielschnittstelle zu erzeugen, um Laden des Datenstromsin den entsprechenden Quelldatenspeicher zu ermöglichen; und während derDatenstrom vom FTP Client in Übereinstimmungmit FTP ankommt, den eingehenden Datenstrom zur programmatischenZielschnittstelle zum Laden in den entsprechenden Zieldatenspeicherzu senden. [7] System nach Anspruch 1, wobei ein bestimmter Datenspeicherein Quelldatenspeicher oder ein Zieldatenspeicher für einenbestimmten Massendatentransfer sein kann, abhängig davon, ob Datenentitäten während desbesstimmten Massendatentransfers von dem bestimmten Datenspeicherextrahiert oder in den bestimmten Datenspeicher geladen werden. [8] System nach Anspruch 1, wobei Laden von Datenentitäten Einfügen, Updatenoder Löschenvon Datenentitätenaufweist. [9] System nach Anspruch 1, wobei: innerhalb jederprogrammatischen Schnittstelle eine oder mehrere Ressourcen definiertsind, die Datenentitätendarstellen, welche in dem entsprechenden Datenspeicher enthaltensind; und der Datenintegrationsserver in der Lage ist, alsAntwort auf eine Anfrage, einen Massendatentransfer auszuführen, dereine oder mehrere in einem oder mehreren Datenspeichern enthalteneRessourcen involviert, jede programmatische Schnittstelle, innerhalbwelcher mindestens eine der Ressourcen definiert ist, zu kreieren. [10] System nach Anspruch 9, wobei eine einmal erzeugteprogrammatische Schnittstelle bestehen bleibt: im Falle einerprogrammatischen Quellschnittstelle während der Gesamtheit des Massendatentransfers,bevor sie frei gegeben wird; und im Falle einer programmatischenZielschnittstelle währendeines einzelnen Schrittes des Massendatentransfers bevor sie freigegeben wird. [11] Verfahren zum Ausführen von Massendatentransferszwischen persistenten Datenspeichern, aufweisend: zur Verfügung stelleneines Datenintegrationsservers, der an einen oder mehrere persistenteDatenspeicher gekoppelt ist; zur Verfügung stellen von einer odermehreren programmatischen Quellschnittstellen, wobei jede einementsprechenden Quelldatenspeicher zugeordnet ist, gemäß einergemeinsamen programmatischen Quellschnittstellenspezifikation definiertist und währendeines Massendatentransfers innerhalb des Datenintegrationsserversbereitgestellt wird, um es dem Datenintegrationsserver zu ermöglichen,von dem entsprechenden Quelldatenspeicher eine oder mehrere Datenentitäten zumLaden in irgendeinen oder mehrere ausgewählte Zieldatenspeicher während desMassendatentransfers zu extrahieren; und zur Verfügung stellenvon einer oder mehreren programmatischen Zielschnittstellen, wobeijede einem entsprechenden Zieldatenspeicher zugeordnet ist, gemäß einergemeinsamen programmatischen Zielschnittstellenspezifikation definiertist und währendeines Massendatentransfers innerhalb des Datenintegrationsservers bereitgestelltwird, um es dem Datenintegrationsserver zu ermöglichen, eine oder mehrereDatenentitäten,die von irgendeinem oder mehreren ausgewählten Quelldatenspeichern während desMassendatentransfers extrahiert wurden, in den entsprechenden Zieldatenspeicherzu laden; wobei jede programmatische Schnittstelle: dementsprechenden Datenspeicher eine Abstraktion von Massendatentransferoperationeninnerhalb des Datenintegrationsservers zur Verfügung stellt, so dass eigener-Codenicht in Verbindung mit dem entsprechenden Datenspeicher entwickeltwerden muss, um Massendatentransfers zwischen dem entsprechendenDatenspeicher und jedem anderen bestimmten Datenspeicher zu ermöglichen;und spezifische Details, die dem entsprechenden Datenspeicherzugeordnet sind, vom Datenintegrationsserver isoliert, so dass eigener-Codein Verbindung mit dem Datenintegrationsserver nicht entwickelt werdenmuss, um Massendatentransfers zwischen dem entsprechenden Datenspeicherund jedem anderen bestimmten Datenspeicher zu ermöglichen. [12] Verfahren nach Anspruch 11, wobei die programmatischenSchnittstellen JAVA Schnittstellen aufweisen. [13] Verfahren nach Anspruch 11, wobei: eine programmatischeSchnittstelle innerhalb des Datenintegrationsservers als eine Industriestandardschnittstellebereitgestellt werden kann, die Massendatentransfers gemäß einemIndustriestandardprotokoll unterstützt; und das Verfahrenaufweist, dass der Datenintegrationsserver: eine Anfrage voneinem Client empfängt,die anzeigt, dass der Client gemäß dem Industriestandardprotokoll Datenvon einem Datenspeicher extrahiert oder Daten in einen Datenspeicherlädt; dieentsprechende programmatische Schnittstelle erzeugt, um Extraktionder Daten vom oder Laden der Daten in den Datenspeicher zu ermöglichen;und zur Datenextraktion, währenddie programmatische Quellschnittstelle die von dem Datenspeicherextrahierten Daten produziert, die abgehenden Daten gemäß dem Industriestandardprotokollzum Client sendet; oder zum Datenladen, während die Daten gemäß dem Industriestandardprotokollvom Client ankommen, die eingehenden Daten zum Laden in den Datenspeicheran die programmatische Zielschnittstelle sendet. [14] Verfahren nach Anspruch 13, aufweisend, dass eseinem Client erlaubt wird, der fürMassendatentransfers ein Industriestandardprotokoll unterstützt, Massendatentransfersin Bezug auf einen bestehenden Datenspeicher durchzuführen, wobeieine programmatische Schnittstelle verwendet wird, ob nun der bestehendeDatenspeicher oder eine zugeordnete, bestehende Anwendung selbstMassendatentransfers gemäß dem Industriestandardprotokollunterstütztoder nicht. [15] Verfahren nach Anspruch 11, wobei: eine programmatischeQuell-Schnittstelle innerhalb des Datenintegrationsservers als eineIndustriestandard File Transfer Protocol (FTP) Schnittstelle bereitgestelltwerden kann, die Massendatentransfers gemäß einem FTP Industriestandardprotokollunterstützt;und das Verfahren aufweist, dass der Datenintegrationsserver: eseinem FTP Client erlaubt, eine FTP Verbindung zu öffnen, dieden Datenintegrationsserver darüberinformiert, dass der FTP Client einen Datenstrom vom entsprechendenQuelldatenspeicher herunterlädt; dieprogrammatische Quellschnittstelle erzeugt, um Extraktion des Datenstromsvon dem entsprechenden Quelldatenspeicher zu ermöglichen; und, während dieprogrammatische Quellschnittstelle den von dem entsprechenden Quelldatenspeicherextrahierten Datenstrom produziert, den abgehenden Datenstrom in Übereinstimmungmit FTP zum FTP Client sendet. [16] Verfahren nach Anspruch 11, wobei: eine programmatischeZielschnittstelle innerhalb des Datenintegrationsservers als eineIndustriestandard File Transfer Protocol (FTP) Schnittstelle bereitgestelltwerden kann, die Massendatentransfers gemäß einem FTP Industriestandardprotokollunterstützt;und das Verfahren aufweist, dass der Datenintegrationsserver: eseinem FTP Client erlaubt, eine FTP Verbindung zu öffnen, dieden Datenintegrationsserver darüberinformiert, dass der FTP Client einen Datenstrom zum entsprechendenZieldatenspeicher hochlädt; dieprogrammatische Zielschnittstelle erzeugt, um Laden des Datenstromsin den entsprechenden Quelldatenspeicher zu ermöglichen; und, während derDatenstrom vom FTP Client in Übereinstimmungmit FTP ankommt, den eingehenden Datenstrom zur programmatischenZielschnittstelle zum Laden in den entsprechenden Zieldatenspeichersendet. [17] Verfahren nach Anspruch 11, wobei ein bestimmterDatenspeicher ein Quelldatenspeicher oder ein Zieldatenspeicherfür einenbestimmten Massendatentransfer sein kann, abhängig davon, ob Datenentitäten während desbestimmten Massendatentransfers von dem bestimmten Datenspeicherextrahiert oder in den bestimmten Datenspeicher geladen werden. [18] Verfahren nach Anspruch 11, wobei Laden von Datenentitäten Einfügen, Updatenoder Löschenvon Datenentitätenaufweist. [19] Verfahren nach Anspruch 11, wobei: innerhalbjeder programmatischen Schnittstelle eine oder mehrere Ressourcendefiniert sind, die Datenentitätendarstellen, welche in dem entsprechenden Datenspeicher enthaltensind; und das Verfahren aufweist, dass der Datenintegrationsserver,als Antwort auf eine Anfrage, einen Massendatentransfer auszuführen, dereine oder mehrere in einem oder mehreren Datenspeichern enthalteneRessourcen involviert, jede programmatische Schnittstelle, innerhalbwelcher mindestens eine der Ressourcen definiert ist, erzeugt. [20] Verfahren nach Anspruch 19, wobei eine einmal erzeugteprogrammatische Schnittstelle bestehen bleibt: im Falle einerprogrammatischen Quellschnittstelle während der Gesamtheit des Massendatentransfersbevor sie freigegeben wird; und im Falle einer programmatischenZielschnittstelle währendeines einzelnen Schrittes des Massendatentransfers bevor sie freigegebenwird. [21] Software zum Ausführen von Massendatentransferszwischen persistenten Datenspeichern, wobei die Software in computerlesbarenMedien verkörpertist und bei Ausführungin der Lage ist, einen Datenintegrationsserver zur Verfügung zustellen, der an einen oder mehrere persistente Datenspeicher gekoppeltist; eine oder mehrere programmatische Quellschnittstellenzur Verfügungzu stellen, wobei jede einem entsprechenden Quelldatenspeicher zugeordnetist, gemäß einergemeinsamen programmatischen Quellschnittstellenspezifikation definiertist und innerhalb des Datenintegrationsservers während eines Massendatentransfers bereitgestelltwird, um es dem Datenintegrationsserver zu ermöglichen, von dem entsprechendenQuelldatenspeicher eine oder mehrere Datenentitäten zum Laden in irgendeinenoder mehrere ausgewählteZieldatenspeicher währenddes Massendatentransfers zu extrahieren; und eine oder mehrereprogrammatische Zielschnittstellen zur Verfügung zu stellen, wobei jedeeinem entsprechenden Zieldatenspeicher zugeordnet ist, gemäß einergemeinsamen programmatischen Zielschnittstellenspezifikation definiertist und innerhalb des Datenintegrationsservers während eines Massendatentransfersbereitgestellt wird, um es dem Datenintegrationsserver zu ermöglichen,eine oder mehrere Datenentitäten,die währenddes Massendatentransfers von irgendeinem oder mehreren ausgewählten Quelldatenspeichernextrahiert wurden, in den entsprechenden Zieldatenspeicher zu laden; wobeijede programmatische Schnittstelle: dem entsprechenden Datenspeichereine Abstraktion von Massendatentransferoperationen innerhalb desDatenintegrationsservers zur Verfügung stellt, so dass eigener-Codenicht in Verbindung mit dem entsprechenden Datenspeicher entwickeltwerden muss, um Massendatentransfers zwischen dem entsprechendenDatenspeicher und jedem anderen bestimmten Datenspeicher zu ermöglichen;und spezifische Details, die dem entsprechenden Datenspeicherzugeordnet sind, vom Datenintegrationsserver isoliert, so dass eigener-Codenicht in Verbindung mit dem Datenintegrationsserver entwickelt werdenmuss, um Massendatentransfers zwischen dem entsprechenden Datenspeicherund jedem anderen bestimmten Datenspeicher zu ermöglichen. [22] Software nach Anspruch 21, wobei die programmatischenSchnittstellen JAVA Schnittstellen beinhalten. [23] Software nach Anspruch 21, wobei: eine programmatischeSchnittstelle innerhalb des Datenintegrationsservers als Industriestandardschnittstelle bereitgestelltwerden kann, die Massendatentransfers gemäß einem Industriestandardprotokollunterstützt; und derDatenintegrationsserver in der Lage ist, um: eine Anfrage voneinem Client zu erhalten, die anzeigt, dass der Client gemäß dem Industriestandardprotokoll Datenvon einem Datenspeicher extrahiert oder Daten in einen Datenspeicherlädt; dieentsprechende programmatische Schnittstelle zu erzeugen, um Extraktionder Daten von oder Laden der Daten in den Datenspeicher zu ermöglichen;und fürDatenextraktion, währenddie programmatische Quellschnittstelle die Daten produziert, dievon dem Datenspeicher extrahiert wurden, die abgehenden Daten gemäß dem Industriestandardprotokollan den Client zu senden; oder zum Datenladen, während dieDaten von dem Client gemäß dem Industriestandardprotokollankommen, die ankommenden Daten an die programmatische Zielschnittstellezum Laden in den Datenspeicher zu senden. [24] Software nach Anspruch 23, wobei der Datenintegrationsserverin der Lage ist, es einem Client, der für Massendatentransfers einIndustriestandardprotokoll unterstützt, zu erlauben, Massendatentransfersin Bezug auf einen bestehenden Datenspeicher durchzuführen, wobeieine programmatische Schnittstelle verwendet wird, ob nun ein bestehenderDatenspeicher oder eine zugeordnete, bestehende Anwendung selbstMassendatentransfers in Übereinstimmungmit dem Industriestandardprotokoll unterstützt oder nicht. [25] Software nach Anspruch 21, wobei: eine programmatischeQuell-Schnittstelle innerhalb des Datenintegrationsservers als eineIndustriestandard File Transfer Protocol (FTP) Schnittstelle bereitgestelltwerden kann, die Massendatentransfers gemäß einem FTP Industriestandardprotokollunterstützt;und der Datenintegrationsserver in der Lage ist, um: eseinem FTP Client zu erlauben, eine FTP Verbindung zu öffnen, dieden Datenintegrationsserver darüberinformiert, dass der FTP Client einen Datenstrom vom entsprechendenQuelldatenspeicher herunterlädt; dieprogrammatische Quellschnittstelle zu erzeugen, um Extraktion desDatenstroms von dem entsprechenden Quelldatenspeicher zu ermöglichen;und, währenddie programmatische Quellschnittstelle den von dem entsprechendenQuelldatenspeicher extrahierten Datenstrom produziert, den abgehendenDatenstrom in Übereinstimmungmit FTP zum FTP Client zu senden. [26] Software nach Anspruch 21, wobei: eine programmatischeZielschnittstelle innerhalb des Datenintegrationsservers als eineIndustriestandard File Transfer Protocol (FTP) Schnittstelle bereitgestelltwerden kann, die Massendatentransfers gemäß einem FTP Industriestandardprotokollunterstützt;und der Datenintegrationsserver in der Lage ist, um: eseinem FTP Client zu erlauben, eine FTP Verbindung zu öffnen, dieden Datenintegrationsserver darüberinformiert, dass der FTP Client einen Datenstrom zum entsprechendenZieldatenspeicher hochlädt; dieprogrammatische Zielschnittstelle zu erzeugen, um Laden des Datenstromsin den entsprechenden Quelldatenspeicher zu ermöglichen; und, während derDatenstrom vom FTP Client in Übereinstimmungmit FTP ankommt, den eingehenden Datenstrom zur programmatischenZielschnittstelle zum Laden in den entsprechenden Zieldatenspeicherzu senden. [27] Software nach Anspruch 21, wobei ein bestimmterDatenspeicher ein Quelldatenspeicher oder ein Zieldatenspeicherfür einenbestimmten Massendatentransfer sein kann, abhängig davon, ob Datenentitäten während desbestimmten Massendatentransfers von dem bestimmten Datenspeicherextrahiert oder in den bestimmten Datenspeicher geladen werden. [28] Software nach Anspruch 21, wobei Laden von Datenentitäten Einfügen, Updatenoder Löschenvon Datenentitätenbeinhaltet. [29] Software nach Anspruch 21, wobei: innerhalbjeder programmatischen Schnittstelle eine oder mehrere Ressourcendefiniert sind, die Datenentitätendarstellen, welche in dem entsprechenden Datenspeicher enthaltensind; und der Datenintegrationsserver in der Lage ist, alsAntwort auf eine Anfrage, einen Massendatentransfer auszuführen, dereine oder mehrere in einem oder mehreren Datenspeichern enthalteneRessourcen involviert, jede programmatische Schnittstelle, innerhalbwelcher mindestens eine der Ressourcen definiert ist, zu erzeugen. [30] Software nach Anspruch 29, wobei eine einmal erzeugteprogrammatische Schnittstelle bestehen bleibt: im Falle einerprogrammatischen Quellschnittstelle während der Gesamtheit des Massendatentransfersbevor sie freigegeben wird; und im Falle einer programmatischenZielschnittstelle währendeines einzelnen Schrittes des Massendatentransfers bevor sie freigeschaltet wird. [31] System zum Ausführenvon Massendatentransfers zwischen persistenten Datenspeichern, aufweisend: Mittelzum zur Verfügungstellen eines Datenintegrationsservers, der an einen oder mehrerepersistente Datenspeicher gekoppelt ist; Mittel zum zur Verfügung stelleneiner oder mehrerer programmatischer Quellschnittstellen, wobeijede einem entsprechenden Quelldatenspeicher zugeordnet ist, entsprechendeiner gemeinsamen programmatischen Quellschnittstellenspezifikationdefiniert ist und innerhalb des Datenintegrationsservers während einesMassendatentransfers bereitgestellt wird, um es dem Datenintegrationsserverzu ermöglichen,eine oder mehrere Datenentitätenzum Laden in irgendeinen oder mehrere ausgewählte Zieldatenspeicher während desMassendatentransfers von dem entsprechenden Quelldatenspeicher zuextrahieren; und Mittel zum zur Verfügung stellen einer oder mehrererprogrammatischer Zielschnittstellen, wobei jede einem entsprechendenZieldatenspeicher zugeordnet ist, entsprechend einer gemeinsamenprogrammatischen Zielschnittstellenspezifikation definiert ist undinnerhalb des Datenintegrationsservers während eines Massendatentransfersbereitgestellt wird, um es dem Datenintegrationsserver zu ermöglichen,eine oder mehrere Datenentitäten,die von irgendeinem oder mehreren ausgewählten Quelldatenspeichern während desMassendatentransfers extrahiert wurden, in den entsprechenden Zieldatenspeicherzu laden; wobei jede programmatische Schnittstelle: dementsprechenden Datenspeicher eine Abstraktion von Massendatentransferoperationeninnerhalb des Datenintegrationsservers zur Verfügung stellt, so dass eigener-Codenicht in Verbindung mit dem entsprechenden Datenspeicher entwickeltwerden muss, um Massendatentransfers zwischen dem entsprechendenDatenspeicher und jedem anderen bestimmten Datenspeicher zu ermöglichen;und spezifische Details, die dem entsprechenden Datenspeicherzugeordnet sind, vom Datenintegrationsserver isoliert, so dass eigener-Codenicht in Verbindung mit dem Datenintegrationsserver entwickelt werdenmuss, um Massendatentransfers zwischen dem entsprechenden Datenspeicherund jedem anderen bestimmten Datenspeicher zu ermöglichen. [32] System zum Ausführenvon Massendatentransfers zwischen persistenten Datenspeichern, aufweisend: einenDatenintegrationsserver, der an einen oder mehrere persistente Datenspeichergekoppelt ist; eine oder mehrere programmatische Quellschnittstellen,wobei jede einem entsprechenden Quelldatenspeicher zugeordnet ist,entsprechend einer gemeinsamen programmatischen Quellschnittstellenspezifikationdefiniert ist und innerhalb des Datenintegrationsservers während einesMassendatentransfers als eine Industriestandard-Schnittstelle, die Massendatentransfersgemäß einemIndustriestandardprotokoll unterstützt, bereitgestellt wird, umes dem Datenintegrationsserver zu erlauben, eine oder mehrere Datenentitäten zumLaden in irgendeinen oder mehrere ausgewählte Zieldatenspeicher während desMassendatentransfers von dem entsprechenden Quelldatenspeicher zuextrahieren; und eine oder mehrere programmatische Zielschnittstellen,wobei jede einem entsprechenden Zieldatenspeicher zugeordnet ist,entsprechend einer gemeinsamen programmatischen Zielschnittstellenspezifikationdefiniert ist und innerhalb des Datenintegrationsservers während einesMassendatentransfers als eine Industriestandard-Schnittstelle, die Massendatentransfersgemäß einemIndustriestandardprotokoll unterstützt, bereitgestellt wird, umes dem Datenintegrationsserver zu erlauben, eine oder mehrere Datenentitäten, dievon irgendeinem oder mehreren ausgewählten Quelldatenspeichern während desMassendatentransfers extrahiert wurden, in den entsprechenden Zieldatenspeicherzu laden; wobei jede programmatische Schnittstelle: dementsprechenden Datenspeicher eine Abstraktion von Massendatentransferoperationeninnerhalb des Datenintegrationsservers zur Verfügung stellt, so dass eigener-Codenicht in Verbindung mit dem entsprechendem Datenspeicher entwickeltwerden muss, um Massendatentransfers zwischen dem entsprechendenDatenspeicher und jedem anderen bestimmten Datenspeicher zu ermöglichen;und spezifische Details, die dem entsprechenden Datenspeicherzugeordnet sind, vom Datenintegrationsserver isoliert, so dass eigener-Codenicht in Verbindung mit dem Datenintegrationsserver entwickelt werdenmuss, um Massendatentransfers zwischen dem entsprechenden Datenspeicherund jedem anderen bestimmten Datenspeicher zu ermöglichen; wobeider Datenintegrationsserver in der Lage ist: eine Anfrage voneinem Client zu erhalten, die anzeigt, dass der Client gemäß dem Industriestandardprotokoll Datenvon einem Datenspeicher extrahiert oder Daten in einen Datenspeicherlädt; dieentsprechende programmatische Schnittstelle zu erzeugen, um Extraktionder Daten von oder Laden der Daten in den Datenspeicher zu ermöglichen;und fürDatenextraktion, währenddie programmatische Quellschnittstelle die Daten produziert, dievon dem Datenspeicher extrahiert werden, die abgehenden Daten gemäß dem Industriestandardprotokollan den Client zu senden; oder zum Datenladen, während dieDaten von dem Client gemäß dem Industriestandardprotokollankommen, die ankommenden Daten an die programmatische Zielschnittstellezum Laden in den Datenspeicher zu senden; wobei der Datenintegrationsserveres einem Client, der fürMassendatentransfers das Industriestandardprotokoll unterstützt, erlaubt,Massendatentransfers in Bezug auf einen bestehenden Datenspeicherdurchzuführen, wobeieine programmatische Schnittstelle verwendet wird, ob nun ein bestehenderDatenspeicher oder eine zugeordnete, bestehende Anwendung selbstMassendatentransfers in Übereinstimmungmit dem Industriestandardprotokoll unterstützt oder nicht.
类似技术:
公开号 | 公开日 | 专利标题 US10558642B2|2020-02-11|Mechanism for deprecating object oriented data JP6113693B2|2017-04-12|Background format optimization for enhanced SQL-like queries in Hadoop US9588743B2|2017-03-07|Semantic-based, service-oriented system and method of developing, programming and managing software modules and software solutions US8924408B2|2014-12-30|Automatic generation of database invocation mechanism for external web services US5995945A|1999-11-30|System and process for inter-domain planning analysis and optimization using model agents as partial replicas of remote domains US8869099B2|2014-10-21|System and method of enabling multi-tenancy for software as a service application US7814459B2|2010-10-12|System and method for automated on demand replication setup US5644764A|1997-07-01|Method for supporting object modeling in a repository US6308224B1|2001-10-23|Method of generating an implementation of a workflow process model in an object environment US6738775B2|2004-05-18|Database communication system and method for communicating with a database US7155380B2|2006-12-26|System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model US20150370545A1|2015-12-24|Object storage and synchronization hooks for occasionally-connected devices US7668798B2|2010-02-23|System and method for accessing data in disparate information sources US8473896B2|2013-06-25|Computer software development incorporating core and compound services US8375379B2|2013-02-12|Importing language extension resources to support application execution US6223187B1|2001-04-24|Distributed synchronization of databases US6016495A|2000-01-18|Object-oriented framework mechanism for providing persistent storage US7475107B2|2009-01-06|System and method for managing distributed computer processes US8347207B2|2013-01-01|Automatically moving annotations associated with multidimensional data between live datacubes JP4604042B2|2010-12-22|System and method for object maintenance in a database store US8214409B2|2012-07-03|Adapter architecture for mobile data system JP5346336B2|2013-11-20|レガシーアプリケーションの移行 US7599948B2|2009-10-06|Object relational mapping layer EP1960899B1|2016-05-04|Anpassung von web-diensten an einen aktualisierten vertrag US20150040103A1|2015-02-05|Data component in a mobile application framework
同族专利:
公开号 | 公开日 TWI387886B|2013-03-01| TW200506644A|2005-02-16| US8117326B2|2012-02-14| US20040225763A1|2004-11-11|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2008-03-13| 8128| New person/name/address of the agent|Representative=s name: DF-MP, 80333 MUENCHEN | 2012-01-19| R082| Change of representative|Representative=s name: DF-MP, DE Representative=s name: DF-MP, 80333 MUENCHEN, DE | 2012-02-02| R012| Request for examination validly filed|Effective date: 20110509 | 2012-03-15| R081| Change of applicant/patentee|Owner name: JDA SOFTWARE GROUP, INC., SCOTTSDALE, US Free format text: FORMER OWNER: I2 TECHNOLOGIES, INC., DALLAS, TEX., US Effective date: 20120119 | 2012-03-15| R082| Change of representative|Representative=s name: DF-MP DOERRIES FRANK-MOLNIA & POHLMAN PATENTAN, DE Effective date: 20120119 | 2013-09-17| R016| Response to examination communication| 2014-12-02| R119| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee| 2015-02-26| R119| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee|Effective date: 20141202 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|